Frage 401 - Nicht autorisiert auf Server 2008 R2 IIS 7.5


Ich habe eine Webanwendung auf Server 2008 IIS 7.5-Box bereitgestellt.

Aus der Ferne gibt es diesen Fehler: 401 - Unauthorized: Access is denied due to invalid credentials. (remote = Desktops im selben LAN)

Habe mehrere Remote-Clients mit verschiedenen Browsern ausprobiert, die alle zu dem gleichen Ergebnis führen. (IE, FF und Chrome)

Hitting die Anwendung von der Desktop des Servers selbst funktioniert einwandfrei. Allerdings habe ich Firebug auf dem Server-Desktop nicht ausprobiert. Ich würde annehmen, dass es immer noch einen 401-Statuscode ausgibt, den Inhalt dennoch zurückgibt. Siehe Update # 2.

Die Anwendung verwendet die anonyme Authentifizierung.

Die Anwendung ist in .NET 4.0 Asp.Net mit dem MVC-Framework geschrieben.

Statischer Inhalt funktioniert gut, Beispiel: http://server.com/content/image.jpg

Sysinternals procmon gibt diese 2 Ergebnisse für jede Anfrage zurück: FAST IO DISALLOWED und PATH NOT FOUND.

Ich habe 2 andere MVC-Anwendungen, die auf demselben Server laufen. Ich habe die Sicherheit der Ordner überprüft und sie alle übereinstimmen.

Die App läuft in einer Server 2008 IIS 7.0-Box einwandfrei.

Im Ereignisprotokoll auf dem entsprechenden Server wird nichts angezeigt.

Zieh mir hier die Haare aus, irgendwelche Fehlerbehebungstipps?

UPDATE # 1: Das wird nur mehr WTF, wie ich graben.

Wenn ich auf die Anwendung in IIS-Manager -> Fehlerseiten -> Einstellungen bearbeiten klicken, wählen Sie Detailed ErrorsDie App funktioniert remote. Ich lasse das nicht zu, also ist das Problem noch nicht gelöst, es ist nur noch verwirrender.

UPDATE # 2: Mit Firebug sehe ich, dass der Status still ist 401 Unauthorized, aber die Antwort gibt das korrekte HTML der Anwendung zurück.

UPDATE # 3 Herumspielen mit fehlgeschlagener Anforderungsverfolgung, hier ist die WARNUNG-Anforderungsablaufverfolgung, die die 401 verursacht:

ModuleName ManagedPipelineHandler
Notification 128
HttpStatus 401 
HttpReason Unauthorized 
HttpSubStatus 0 
ErrorCode 0 
ConfigExceptionInfo  
Notification EXECUTE_REQUEST_HANDLER 
ErrorCode The operation completed successfully. (0x0)

Update # 4 Das reguläre IIS-Protokoll zeigt Folgendes an:

#Software: Microsoft Internet Information Services 7.5
#Version: 1.0
#Date: 2010-07-20 19:17:22
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken
2010-07-20 19:17:22 10.10.1.10 GET /Purchasing/Home - 80 - 10.10.1.12 Mozilla/5.0+(Windows;+U;+Windows+NT+6.1;+en-US;+rv:1.9.2.6)+Gecko/20100625+Firefox/3.6.6 401 0 0 4414

19
2018-04-29 15:46


Ursprung


Haben Sie versucht, die Ablaufverfolgung für fehlgeschlagene Anfragen auf dem Server auszuführen und über den Remote-Computer auf die Anwendung zuzugreifen? Wenn ein Fehler auftritt, sollten Sie die Ursache sehen. - Vivek Kumbhar
@vivek sehe mein letztes Update - mxmissile
ARRG !!! Bin aber nochmal dabei! 2 Stunden verschwendete Suche nach Html.RenderAction, dann realisierte Razor Html.Action Meine ersten Suchanfragen waren also leer. - mxmissile
Oh, es war ein paar Jahre, rate mal was? Nur 3 Stunden an diesem Morgen auf diese Weise wieder verschwendet! Wann werde ich lernen?!?!?! - mxmissile


Antworten:


Manchmal musst du einen Schritt zurück machen ... Der Grund dafür war, dass ich eine hatte Html.RenderAction() Meiner Ansicht nach nannte das eine Aktionsmethode, die mit dem Symbol markiert wurde [Authorize] Attribut.


18
2017-09-27 18:44



Das war mein Problem, es war frustrierend genug einen Panda zu schlagen (nicht dass ich es würde). Danke mxmissile. - Khalid Abuhakmeh


Da es lokal, aber nicht entfernt funktioniert, klingt es für mich so, als hätte der anonyme Benutzer keinen Zugriff auf etwas, aber Ihr Windows-Benutzer. Um dies zu beweisen, deaktivieren Sie die Windows-Authentifizierung für die Website und sehen Sie, ob sie lokal bricht.

Was auch immer bricht, läuft wahrscheinlich als Ihre Website-Identität anstelle Ihrer App-Pool-Identität, sonst würde es lokal und remote brechen. Meine Empfehlung, wenn Sie 1 zu 1 Zuordnungen von Websites zu App-Pools haben oder eine Umgebung mit hohem Vertrauen haben, besteht darin, das anonyme Benutzerkonto für die Verwendung der App-Pool-Identität festzulegen. Dann brauchen Sie sich keine Sorgen um einen zweiten Benutzer zu machen.

Sie haben Process Explorer erwähnt. Das ist gut zum Auffinden von Laufinformationen, aber das Tool, das wahrscheinlich Zugriffsfehler aufdeckt, ist processmon (auch von sysinternals). Probieren Sie es aus, repro und capturen Sie, dann suchen Sie nach dem Wort "verweigert". Es sollte alle Zugriff verweigert Probleme auf der Festplatte zeigen.


3
2017-07-27 13:57





Sie haben das gleiche Verhalten, wenn Sie einen Filter für benutzerdefinierte Autorisierung haben, von der er erbt AuthorizeAttributeund ein oder mehrere Anrufe an OnAuthorization Methode, mit einer von ihnen Einstellung AuthorizationContext.Result zu "HttpUnauthorizedResult"


3
2018-06-07 15:57





Aus irgendeinem Grund hat dies mein Problem behoben.

  1. Klicken Sie auf Website in IIS.
  2. Doppelklick-Authentifizierung
  3. Klicken Sie mit der rechten Maustaste und wählen Sie Erweiterte Einstellungen
  4. Deaktivieren Sie "Kernelmodus-Authentifizierung aktivieren"

3
2017-09-29 22:41





Haben Sie die Einstellungen unter Autorisierungsregeln überprüft? Wenn jemand auf diese Seite zugreifen kann (was Ihr Ziel zu sein scheint), stellen Sie sicher, dass Sie eine "Zulassen" -Regel mit "Alle Benutzer" in der Benutzerspalte haben.

Stellen Sie dann unter "Authentifizierung" sicher, dass keine Konflikte auftreten und nur die anonyme Authentifizierung aktiviert ist.

Hoffentlich hilft das.


1
2018-04-29 19:17



Erlauben - Alle Benutzer - Vererbt - mxmissile