Domanda

Abbiamo qui un'applicazione asp.net 3.5 che utilizza l'autenticazione di Windows basata su NTLM. Il sistema funziona su una rete privata che si è effettivamente distribuita su diverse aree geografiche (connesse tramite VPN).

Ora stiamo cercando di ottimizzare le prestazioni del sito Web. Poiché il modo in cui NTLM funziona, ogni nuova richiesta a IIS è composta da 3 richieste diverse mentre le prime 2 sono 401 risposte. Stiamo cercando di ridurre al minimo la quantità di queste richieste solo all'inizio della sessione. Abbiamo trovato questa soluzione. Sfortunatamente non ha cambiato nulla e continuiamo a ricevere questa risposta 401 (che richiede tempo).

Per vedere il traffico ho usato per la prima volta l'app Fiddler. In qualche modo, quando uso Fiddler, c'è solo 1 processo di autenticazione all'inizio della sessione (esattamente come desidero), ma quando chiudo Fiddler e controllo il traffico tramite WireShark posso vedere che ho ancora questa risposta 401 per ogni richiesta .

I client utilizzati sono IE6, IIS versione 6.

Qualcuno può consigliare?

È stato utile?

Soluzione

NTLM / Negozia, a differenza di tutti gli altri schemi di autenticazione HTTP, sono protocolli orientati alla connessione.

In IIS, ci sono varie impostazioni che controllano se sarà richiesta l'autenticazione per tutte le richieste su una connessione precedentemente autenticata (ad esempio AuthPersistSingleRequest). Indipendentemente da tale impostazione, credo che IIS richiederà automaticamente una nuova autenticazione quando si effettua una richiesta POST.

Se il tuo server sta compromettendo il riutilizzo della connessione (ad es. inviando una Connessione: chiudi l'intestazione nelle risposte) devi risolverlo perché altrimenti si verificherà la riautenticazione. Puoi facilmente controllare tali intestazioni sventanti di riutilizzo dell'autenticazione usando Fiddler.

Altri suggerimenti

L'unico modo è utilizzare NTLM solo sulla pagina di accesso e utilizzare cookie come qui

Su un argomento correlato; se si utilizza IIS7.0 e l'autenticazione Kerberos, sembra che AuthPersistNonNTLM = true possa essere utilizzato per evitare 401 round trip per ogni richiesta.

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

http://blogs.technet.com/b/configurationmgr/archive/2010/06/03/solution-you-may -esperienza-slow-prestazioni-quando-con-bit-e-Kerberos l'autenticazione-on-ConfigMgr-2007-distribuzione-points.aspx

Hai provato questo nel tuo dominio?

setspn -a FQDNServerName applicationPoolServiceAccount
setspn -a biosServerName applicationPoolServiceAccount

Consente al pool di applicazioni di soddisfare le richieste di autenticazione NTLM.

Potrebbero essere le tue impostazioni di sicurezza su IE6 per il sito. Prova a passare a Intranett locale o sito attendibile.

Ho lo stesso identico problema! Sto usando lo stesso ambiente come te. Solo che vedo 2 401 persino in Fiddler. Avevo trascorso un paio di giorni su quel problema e poi mi ero arreso. AuthPersistence non ha funzionato neanche per me. Ma ecco i link che avevo trovato, forse funzioneranno nel tuo 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

Ho provato a impostare il flag sia a livello di directory virtuale che di sito Web, ma non ha aiutato. Stai utilizzando IIS Metabase Explorer per modificare quelle proprietà? È il modo più pulito di modificare le proprietà e può aiutare più che modificare direttamente il file XML.

Un modo per aggirare il problema è inserire l'intestazione Controllo cache nella risposta HTTP per le risorse che non cambieranno frequentemente su nessuna pagina. Nel mio caso, ho memorizzato nella cache i file CSS (utilizzare i CSS esterni il più possibile per ottimizzarlo), i file js e img. Dato che ho circa 60 file di questi tipi che vengono caricati sulla nostra homepage, siamo riusciti a eliminare subito circa 120 401 errori!

Assicurati di utilizzare l'intestazione Cache-Control e non la memorizzazione nella cache se modificata o e-tag in cui un 401 e un 304 verranno comunque generati anche quando i file vengono memorizzati nella cache.

Stavo riscontrando anche questo problema, tranne che, per me, sono stati principalmente i file JS e CSS a causare questo. Il mio sito (come la maggior parte dei siti) conserva i file JS e CSS nelle proprie directory. Quindi la soluzione per me era semplicemente andare in quelle directory in IIS e abilitare Anon Auth (dico semplicemente ma ci sono voluti più di due anni per risolverlo; grazie a questo post). Ora il sito richiede ancora l'autenticazione di Windows ma le sottodirectory per i file JS e CSS no. IOW, sembra funzionare perfettamente.

Inoltre non metterei mai informazioni sensibili in un file JS (o file CSS per quella materia) e suggerirei di non farlo neanche. Se lo fai, ovviamente vorrai spostare le informazioni sensibili in questi file da queste directory.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top