Frage

Wir haben hier eine asp.net 3.5-Anwendung NTLM basierte Windows-Authentifizierung verwenden. Das System läuft auf einem privaten Netzwerk, das tatsächlich über verschiedene geographische Orte verteilt (angeschlossen über VPN).

Wir versuchen nun die Website zu optimieren. Da die Art und Weise NTLM arbeitet, wird jede neue Anforderung an den IIS zusammengesetzt mit 3 verschiedenen Anfragen während der ersten 2 401 Antworten sind. Wir versuchen, die Menge dieser Anforderungen zu minimieren nur zu Beginn der Sitzung zu sein. Wir fanden dieser Lösung. Leider nichts ändern es nicht und wir halten diese 401-Antwort bekommen (die Zeit verbraucht).

Um den Verkehr zu sehen i zum ersten Mal des Fiddler App. Irgendwie, wenn ich Fiddler verwenden, gibt es nur einen Authentifizierungsprozess zu Beginn der Sitzung (genau wie ich will), aber wenn ich Fiddler schließen und überprüfen Sie den Verkehr über Wireshark kann ich sehen, dass ich immer noch für jede Anforderung diese 401-Antwort habe .

Die verwendeten Clients IE6 sind, IIS Version 6.

Kann jemand raten?

War es hilfreich?

Lösung

NTLM / Verhandeln, im Gegensatz zu allen anderen HTTP-Authentifizierungsschemata sind verbindungsorientierte Protokolle.

In IIS gibt es verschiedene Einstellungen, die, ob die Authentifizierung steuern für alle Anforderungen an eine zuvor authentifizierte Verbindung (z AuthPersistSingleRequest) verlangt werden. Unabhängig von dieser Einstellung, glaube ich IIS wird eine POST-Anforderung stellt automatisch eine erneute Authentifizierung verlangen, wenn.

Wenn Ihre Server-Verbindung Wiederverwendung zu beeinträchtigen (zum Beispiel durch eine Verbindung zu senden: close-Header in Antworten) müssen Sie beheben, dass, da sonst die erneute Authentifizierung auftreten. Sie können für eine solche Authentifizierung-Wiederverwendung vereiteln Header mit Fiddler leicht überprüfen.

Andere Tipps

Der einzige Weg ist NTLM auf Login-Seite zu verwenden und nur Cookies wie hier verwenden

Auf einem verwandten Thema; wenn Sie IIS7.0 und Kerberos-Authentifizierung verwenden scheint es AuthPersistNonNTLM true = verwendet werden kann, 401 Umläufe für jede Anfrage zu vermeiden.

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

http://blogs.technet.com/b/configurationmgr/archive/2010/06/03/solution-you-may -Erlebnis-slow-Performance-wenn-mit-Bits-and-kerberos-Authentifizierung-on-ConfigMgr-2007-Verteilung-points.aspx

Haben Sie versucht, diese in Ihrer Domain?

setspn -a FQDNServerName applicationPoolServiceAccount
setspn -a biosServerName applicationPoolServiceAccount

Es erlaubt der Anwendungspool NTLM Authentifizierungsanforderungen zu bedienen.

Es könnte Ihre Sicherheitseinstellungen auf IE6 für den Standort sein. Versuchen Sie, den lokalen intranett oder vertrauenswürdige Site.

Ich habe genau das gleiche Problem! Ich bin mit der gleichen Umgebung wie Sie. Abgesehen davon, dass ich sehe, 2 401 ist auch in Fiddler. Ich hatte ein paar Tage an diesem Problem verbracht und dann gab nur auf mich auf. AuthPersistence hat auch nicht für mich arbeiten. Aber hier sind die Links, die ich gefunden hatte, vielleicht werden sie in Ihrem Fall arbeiten.

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

Ich habe versucht, die Flagge sowohl das virtuelle Verzeichnis und Website-Ebene festgelegt, aber es hat nicht geholfen. Verwenden Sie die IIS Metabase Explorer, diese Eigenschaften zu bearbeiten? Es ist die Art und Weise sauberer Eigenschaften zu bearbeiten und kann mehr helfen als die direkte Bearbeitung der XML-Datei.

Eine Möglichkeit, das Problem zu umgehen, ist den Cache-Control-Header in der HTTP-Antwort für die Ressourcen einzufügen, werden nicht häufig auf jeder Seite zu ändern. In meinem Fall zwischengespeichert ich die CSS (verwenden Sie externe CSS so viel wie möglich, dies zu optimieren), js und img-Dateien. Da ich über 60 Dateien dieser Typen haben, die auf unserer Homepage geladen werden, konnten wir etwa 120 401 Fehler sofort beseitigen!

Stellen Sie sicher, dass Sie die Cache-Control-Header verwenden und nicht das if-modified oder E-Tag-basiertes Caching, wo ein 401 und ein 304 immer noch erzeugt werden, selbst wenn die Dateien zwischengespeichert werden.

Ich habe dieses Problem auch, außer dass, für mich war es meist JS und CSS-Dateien, die dies verursacht. Meine Seite (wie die meisten Websites) hält JS und CSS Dateien dort eigene Verzeichnisse. So ist die Lösung für mich war einfach in IIS auf diese Verzeichnisse zu gehen und ermöglichen Anon Auth (Ich sage einfach, aber es dauerte mehr als zwei Jahre für mich zu arbeiten, dank diesem Beitrag). Nun ist die Website erfordert nach wie vor Windows-Auth, aber die Unterverzeichnisse für JS und CSS-Dateien nicht. IOW, scheint es perfekt zu arbeiten.

Ich würde auch nie (was das betrifft oder CSS-Datei) sensible Informationen in einer JS-Datei setzen und würde vorschlagen, dass Sie auch nicht. Wenn Sie das tun, werden Sie natürlich wollen die sensiblen Daten in diesen Dateien aus diesen Verzeichnissen bewegen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top