Pergunta

Temos aqui uma aplicação asp.net 3.5 usando autenticação do Windows com base NTLM. O sistema funciona em uma rede privada que realmente distribuídas por diferentes lugares geográficos (conectados via VPN).

Estamos agora a tentar optimizar o desempenho do site. Porque a maneira NTLM funciona, a cada novo pedido para o IIS é composta com 3 pedidos diferentes, enquanto o primeiro 2 é 401 respostas. Estamos tentando minimizar a quantidade destes pedidos para ser apenas no início da sessão. Encontramos esta solução . Infelizmente, não muda nada e continuamos recebendo esta resposta 401 (que consome tempo).

Para ver o tráfego i usado pela primeira vez o aplicativo Fiddler. De alguma forma, quando eu uso Fiddler, há apenas 1 processo de autenticação no início da sessão (exatamente como eu gostaria), mas quando eu fechar Fiddler e verificar o tráfego via WireShark eu posso ver que eu ainda tenho essa resposta 401 para cada solicitação .

Os clientes utilizadas são IE6, o IIS versão 6.

Alguém pode aconselhar?

Foi útil?

Solução

NTLM / Negociar, ao contrário de todos os outros esquemas de autenticação HTTP, são protocolos orientados à conexão.

No IIS, existem várias configurações que o controle se a autenticação será exigido para todas as solicitações em uma conexão autenticada anteriormente (por exemplo AuthPersistSingleRequest). Independente dessa configuração, acredito IIS vai exigir automaticamente re-autenticação ao fazer um pedido POST.

Se o servidor estiver prejudicando a reutilização da conexão (por exemplo, enviando uma Connection: close cabeçalho nas respostas) você deve corrigir isso, porque caso contrário a reautenticação ocorrerá. Você pode facilmente verificar para tais cabeçalhos frustrar autenticação de reutilização usando Fiddler.

Outras dicas

A única maneira é usar NTLM na página de login somente e bolinho uso como aqui

Em um tópico relacionado; se você estiver usando IIS7.0 e Kerberos de autenticação parece AuthPersistNonNTLM = true pode ser usado para evitar 401 round-trips para cada solicitação.

http://msdn.microsoft.com/ en-us / library / aa347548 (VS.90) .aspx

http://blogs.technet.com/b/configurationmgr/archive/2010/06/03/solution-you-may -Experiência-slow-desempenho-quando-usando-bits-e-Kerberos de autenticação-on-ConfigMgr-2007-distribuição-points.aspx

Você já tentou isso em seu domínio?

setspn -a FQDNServerName applicationPoolServiceAccount
setspn -a biosServerName applicationPoolServiceAccount

Ele permite que o pool de aplicativos para solicitações NTLM auth serviço.

Pode ser as configurações de segurança no IE6 para o site. Tente alterar a intranett local ou site confiável.

Eu tenho exatamente o mesmo problema! Eu estou usando o mesmo ambiente que você. Só que eu vejo 2 401 do mesmo em Fiddler. Eu tinha passado um par de dias em que problema e, em seguida, apenas deu em cima dele. AuthPersistence não funcionou para mim. Mas aqui estão os links que eu tinha encontrado, talvez eles vão trabalhar no seu caso.

http://msdn.microsoft.com/en-us/library /ms525244.aspx

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003 /Library/IIS/b0b4ec5c-74f8-43e9-ac64-d8b852568341.mspx?mfr=true

http://technet.microsoft.com/en-us/library /cc786094.aspx

http://technet.microsoft.com/en-us/library /cc781339(WS.10).aspx

Eu tentei definir o sinalizador tanto no diretório virtual e nível de site, mas não ajudou. Você está usando o IIS Metabase Explorer para editar essas propriedades? É a maneira mais limpa para editar propriedades e pode ajudar mais do que editar diretamente o arquivo XML.

Uma maneira de contornar o problema é inserir o cabeçalho Cache-Control na resposta HTTP para os recursos que não vão mudar com freqüência em qualquer página. No meu caso, eu cache do css (use css externo, tanto quanto possível para otimizar esse), js e arquivos IMG. Desde que eu tenho cerca de 60 arquivos desses tipos que são carregados em nossa homepage, fomos capazes de eliminar cerca de 120 401 erros de imediato!

Certifique-se de usar o cabeçalho Cache-Control e não o If-Modified ou cache e-tag com base em um 401 e um 304 ainda será gerado mesmo quando os arquivos são armazenados em cache.

Eu estava tendo este problema, bem, exceto que, para mim, foi principalmente arquivos JS e CSS que causou isso. Meu site (como a maioria dos sites) mantém JS e CSS em lá próprios diretórios. Portanto, a solução para mim foi simplesmente ir a esses diretórios no IIS e permitir Anon Auth (digo simplesmente, mas levou mais de dois anos para eu resolver isso, graças a este post). Agora, o site ainda requer autenticação do Windows, mas os sub-diretórios para JS e CSS não. IOW, ele parece estar funcionando perfeitamente.

Eu também iria nunca colocar informações confidenciais em um arquivo JS (ou arquivo CSS para que o assunto) e sugiro que você não quer. Se fizer isso, você obviamente quer mover a informações confidenciais nesses arquivos fora desses diretórios.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top