none
HTTP-Header 401 RRS feed

  • Frage

  • Hi,

    ich habe 2 IIS 7.5 auf verschiedenen Rechnern.
    Sie wurden vom Kunden eingerichtet.
    Auf beiden läuft die gleiche Web-Anwendung (copy/paste)

    Bei einem tritt folgender Fall auf:
    Alle Requests werden zuerst mit einem Header 401 beantwortet, und danach mit dem normalen 200. (In Fiddler gesehen)
    Deswegen reagiert der Server auch bei allem viel langsamer.

    Was kann das für eine Einstellung sein, die einen Zugriff verweigert und dann doch zulässt?
    Meine Vermutung war irgendwas mit Cache, auf die der IIS zuerst zugreifen will aber nicht darf (auf dem einen Rechner) aber ich kann nicht sagen wie oder wo das konfiguriert werden kann.

    mfg. Wolfgang

    Mittwoch, 16. Mai 2012 09:08

Antworten

  • Hallo Wolfgang,

    ein 401 Status hat etwas mit der Authentifizierung zu tun. Sollte ein Fehler auftreten, müsstest Du bitte den genauen Statuscode (also bspw. 401.3) nennen.

    Generelle Infos und Erklärungen zu den einzelnen 401 Fehlern findest Du hier:

      http://support.microsoft.com/kb/907273/de

    Ggfs. ist auf der einen Website die anonyme Authentifizierung aktiviert, auf der anderen nicht. In dem Fall wird zuerst ein Status 401 gesendet, der Browser versucht dann, anhand der vorliegenden Informationen die Benutzerauthentifizierung durchzuführen. Wenn das klappt, kommt dann Status 200 und die Inhalte werden gesendet. Klappt es nicht, wird dann in der Regel einer der 401.x Substatuscodes zurückgeliefert.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 16. Mai 2012 10:34
    Moderator

Alle Antworten

  • Hallo Wolfgang,

    ein 401 Status hat etwas mit der Authentifizierung zu tun. Sollte ein Fehler auftreten, müsstest Du bitte den genauen Statuscode (also bspw. 401.3) nennen.

    Generelle Infos und Erklärungen zu den einzelnen 401 Fehlern findest Du hier:

      http://support.microsoft.com/kb/907273/de

    Ggfs. ist auf der einen Website die anonyme Authentifizierung aktiviert, auf der anderen nicht. In dem Fall wird zuerst ein Status 401 gesendet, der Browser versucht dann, anhand der vorliegenden Informationen die Benutzerauthentifizierung durchzuführen. Wenn das klappt, kommt dann Status 200 und die Inhalte werden gesendet. Klappt es nicht, wird dann in der Regel einer der 401.x Substatuscodes zurückgeliefert.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 16. Mai 2012 10:34
    Moderator
  • Hallo Stefan,

    Danke für Deine Hilfe.
    Es war genau so wie Du vermutet hast.
    Die anonyme Authentifizierung war auf dem besagten Server disabled.
    Kaum enabled und schon kamen keine Fehler mehr.


    mfg, Wolfgang Graz, Austria

    Mittwoch, 16. Mai 2012 15:33
  • Hallo Stefan,

    leider war mein Enthusiasmus verfrüht.
    Es stimmt zwar, dass die Fehler weg sind, aber damit auch der Zwang zur Anmeldung.

    Damit folgt die Frage:
    Wenn ich im IIS anonyme Auth ausschalte und nur Windows-Auth aktiviert habe, in der Web-Config auf auth auf Mode="Windows" gestellt habe, warum wird als erstes versucht, anonym zu senden?
    Liegt das dann noch an einer Web-Einstellung?
    Oder an einer IE-Einstellung auf der Client-Seite?


    Thanks, Wolfgang - Graz, Austria, Europe

    Montag, 11. Juni 2012 10:10
  • "Anonymous Authentication" ist etwas irrführend. Es findet schlicht keine statt = Normalfall.

    Jede Verbindung muß erstmal ohne Authentifizierung versucht werden, da die Authentifizierung von der Serverseite angestoßen werden muß. Woher soll der Client sonst wissen, daß das Verzeichnis geschützt ist?

    Wenn eine HTTP-Authentifzierung erforderlich ist, darf "Anonymous Authentication" nicht aktiviert sein.

    Wenn man die erste und die letzte Frage vergleicht, ist nicht klar, was du eigentlich willst.


    IEFAQ: http://iefaq.info

    Freitag, 29. Juni 2012 17:24
  • Hallo Kai,

    Es ist mir klar, daß der Client sich erst mal authentifizieren muss, aber dann sollte das doch klar sein und alle Requests gleich authentifiziert senden.
    Aber auf der Webpage befinden sich dutzende von Objekten (gifs, js, ... ) die nachgeladen werden müssen und bei jedem kommt zuerst die anonyme Anfrage daher.

    Ist das normal?


    Thanks, Wolfgang - Graz, Austria, Europe

    Freitag, 29. Juni 2012 20:31
  • Es kommt auf die Pfade an. Wenn die Pfade nicht unterhalb des zuerst autorisierten Pfades liegen, ist das normal.

    IEFAQ: http://iefaq.info

    Samstag, 30. Juni 2012 13:34
  • Es kommt auf die Pfade an. Wenn die Pfade nicht unterhalb des zuerst autorisierten Pfades liegen, ist das normal.

    Die erste aufgerufene aspx-Seite liegt im Root-Folder. Alles andere in Folders darunter, also von daher wäre es kein Grund vor das Verhalten.

    Thanks, Wolfgang - Graz, Austria, Europe


    • Bearbeitet diwoma Samstag, 30. Juni 2012 18:04
    Samstag, 30. Juni 2012 18:03
  • Was du siehst, tritt nur bei Windows-Authentifizierung auf. Und ich bezweifle, daß es wirklich für *jede* Ressource stattfindet. Wenn du genau schaust, solltest du feststellen, daß es tatsächlich für viele Ressourcen, aber nicht für alle stattfindet. Das ist eine Eigenart der Windows-Authentifizierung, da diese über NTLM realisiert ist. Und das ist keine in HTTP originär eingebundene Autorisierungsart, es ist nachträglich draufgesattelt.

    Wenn du auf normale HTTP-Autorisierung (Basic oder Digest) umstellst, wirst du sehen, daß nur einmal ein 401 geschickt wird.

    Und langsamer wird es nur dann, wenn fürchterlich viele Ressourcen geholt werden müssen. Ich habe mal verglichen. Für eine kleine Site aus 8 Dateien (html, css, bilder) dauerte der ganze Vorgang 0,013 s ohne und 0,035 mit Windows-Authentication.


    IEFAQ: http://iefaq.info

    Sonntag, 1. Juli 2012 11:43
  • Hallo Kai,

    ich habe im Moment keinen Zugriff, da ich nur in der Fa. einen Zugriff auf den Kundenrechner habe.
    Aber ich werde mal einen Screenshot des Fiddlers machen.

    Was ist eine "normale Autorisierung (Basic oder Digest)"?


    Thanks, Wolfgang - Graz, Austria, Europe

    Sonntag, 1. Juli 2012 13:26
  • Ich brauche keinen Screenshot, ich weiß, was du siehst.

    Zur Frage: http://de.wikipedia.org/wiki/HTTP-Authentifizierung


    IEFAQ: http://iefaq.info

    Sonntag, 1. Juli 2012 19:08