Eu tenho um aplicativo de teste do Windows, usando .net4, que consome um serviço remoto asp.net hospedado no IIS6. O aplicativo cliente possui credenciais do Windows codificadas que passam para a caixa do IIS.
A caixa do IIS suporta apenas a autenticação do Windows.
Em algumas máquinas, a chamada da web é bem-sucedida. Em outros, recebo uma credencial inválida 401.1.
O log do IIS mostra três linhas para uma solicitação bem-sucedida e três linhas para a solicitação com falha: No primeiro pedido (BEM SUCEDIDO), posso ver que o desafio / resposta está agindo como esperado no que diz respeito ao IIS, o pedido inicial faz o 401.2 e depois o 401.1 “dança NTLM” - tentando Basic / Kerberos primeiro, depois retrocedendo e tentando NTLM e a página é servida (www.mysite.co.uk etc).
401.2
401,1
200 (ok)
Na segunda solicitação (FAILING) - do PC com problema, o servidor exibe o mesmo comportamento de negociação, mas o NTLM parece não estar funcionando. Eu recebo um 401.2, 401.1, então em vez de servir a página como no exemplo anterior, obtenha um 401.1 final.
401.2
401,1
401.1 (Créditos inválidos!)
Como eu disse, as credenciais são codificadas no executável, mas funcionam em determinadas máquinas clientes e não em outras. Todas as máquinas são o mesmo sistema operacional, bittyness, mesma configuração de rede, mesmo servidor proxy - na verdade, da mesma imagem.
Eu só posso imaginar que o servidor proxy está fazendo algo desagradável, mas eu também tenho outro site sem servidor proxy que exibe o mesmo comportamento - alguns clientes trabalham enquanto outros não.
Desespero!