"401 Unauthorized" in einem Verzeichnis


85

Ich gehe davon aus, dass dies ein IIS-Fehler ist, da dies nicht der Fall ist, wenn ich das Projekt auf meinem lokalen Computer ausführe.

Ich habe meine Stylesheets bei ~/Content/css

Alle Dateien in diesem Verzeichnis werden nicht auf der Seite geladen. Wenn ich direkt zu ihnen navigiere, wird ein Serverfehler angezeigt:

401 - Nicht autorisiert: Der Zugriff wird aufgrund ungültiger Anmeldeinformationen verweigert.

Sie haben keine Berechtigung, dieses Verzeichnis oder diese Seite mit den von Ihnen angegebenen Anmeldeinformationen anzuzeigen.

Dies passiert nur mit diesem Verzeichnis. Ich habe kein Problem damit, auf andere Dateien zuzugreifen. Muss ich in IIS7 etwas tun, um dies zu stoppen?

Antworten:


46

Es ist wahrscheinlich, dass Sie nicht über die Berechtigung IUSR_- Computername für diesen Ordner verfügen . Ich habe gerade einen kurzen Scan durchgeführt und es sieht so aus, als ob Sie hier die Informationen finden, die Sie benötigen .

Wenn dies nicht der Fall ist, werden Sie vom Browser zur Eingabe Ihres Benutzernamens und Passworts aufgefordert? In diesem Fall ist IIS möglicherweise nur für die Verwendung der integrierten Authentifizierung konfiguriert, wie hier beschrieben .


4
Wenn Sie einen Anwendungspool zum Verwalten Ihres Datenbank- / Dateisystemzugriffs verwenden, tun Sie dies nicht. Lesen Sie weiter, um die Antwort von imanabidi unten zu sehen.
Ryan Shillington

danke, in meinem Fall habe ich gerade alle mit voller Kontrolle hinzugefügt
MorenajeRD

5
support.microsoft.com/kb/313075 - Diese Seite existiert nicht mehr. @ m.edmondson
Divya

289
  1. Öffnen Sie IIS und wählen Sie die Site aus, die 401 verursacht
  2. Wählen Sie im IIS-Header die Eigenschaft Authentifizierung aus
  3. Wählen Sie Anonyme Authentifizierung
  4. Klicken Sie mit der rechten Maustaste darauf, wählen Sie Bearbeiten und dann Anwendungspoolidentität
  5. Starten Sie die Site neu und es sollte funktionieren

13
Es funktioniert aber warum? Können Sie uns etwas mehr erklären?
Nthapa

2
Dies scheint zu funktionieren, da der "spezifische Benutzer" für die anonyme Authentifizierung standardmäßig IUSR ist, wie in der akzeptierten Antwort angegeben. Die im Anwendungspool festgelegte Identität muss jedoch über Berechtigungen für die gesamte Website verfügen, da die Website sonst nicht geladen wird. Während mein IUSR-Konto keinen Zugriff hatte (tatsächlich scheint es nicht zu existieren), funktioniert das Konto, das der Anwendungspool verwendet.
Johann

6
Das funktioniert, aber was verwirrend ist, ist, dass es ungefähr 2 Jahre lang einwandfrei funktioniert hat und heute ohne bekannten Grund nicht mehr funktioniert ... Ihre Lösung hat es behoben.
Serj Sagan

Verbrachte Stunden mit diesem Problem und kein Glück, bis ich das fand! Ich hatte eine MVC 5-Webanwendung, die einmal im Release-Modus veröffentlicht und dann die Site auf Chrome geladen wurde. Der Inhalt wurde geladen, die Stile jedoch nicht. Die Links sind da und die Pfade waren korrekt, aber sie waren alle leer! Dieser Fix hat mein Problem gelöst.
GIVE-ME-CHICKEN

In meinem Fall musste ich nur die anonyme Authentifizierung aktivieren, da diese
Paul

12
  • Öffnen Sie IIS
  • Wählen Sie die Site aus, an der Sie mit dem Problem konfrontiert sind

  • Wählen Sie unten

Geben Sie hier die Bildbeschreibung ein

- Klicken Sie mit der rechten Maustaste auf Anonyme Authentifizierung und klicken Sie auf Bearbeiten und folgen Sie unten

Geben Sie hier die Bildbeschreibung ein


5

Sie haben keine Berechtigung, dieses Verzeichnis oder diese Seite mit den von Ihnen angegebenen Anmeldeinformationen anzuzeigen.

Dies geschah trotz der Tatsache, dass der Benutzer bereits über Active Directory authentifiziert ist.

Es kann viele Ursachen für den Fehler "Zugriff verweigert" geben. Wenn Sie jedoch der Meinung sind, dass Sie in Ihrer Webanwendung bereits alles richtig konfiguriert haben, werden möglicherweise einige Details vergessen. Stellen Sie sicher, dass Sie authentifizierten Benutzern die entsprechende Berechtigung zum Zugriff auf Ihr Webanwendungsverzeichnis erteilen .

Hier sind die Schritte, die ich unternommen habe, um dieses Problem zu lösen.

  1. Klicken Sie mit der rechten Maustaste auf das Verzeichnis, in dem die Webanwendung gespeichert ist, wählen Sie Eigenschaften und klicken Sie auf die Registerkarte Sicherheit.

  2. Klicken Sie auf Klicken Sie auf Bearbeiten… und dann auf Hinzufügen…. Geben Sie Authentifizierte Benutzer in die Schaltfläche Geben Sie die zu wählenden Objektnamen ein und klicken Sie dann auf Hinzufügen . Geben Sie Authentifizierte Benutzer in das Feld Geben Sie die zu wählenden Objektnamen ein.

  3. Klicken Sie auf OK und Sie sollten Authentifizierte Benutzer als einen der Benutzernamen sehen. Geben Sie die entsprechenden Berechtigungen für das Feld Berechtigungen für authentifizierte Benutzer am unteren Ende ein, wenn diese noch nicht aktiviert sind.

  4. Klicken Sie zweimal auf OK , um das Dialogfeld zu schließen. Es sollte sofort wirksam werden. Wenn Sie jedoch sicher sein möchten, können Sie IIS für Ihre Webanwendung neu starten.

Aktualisieren Sie Ihren Browser und er sollte jetzt die Webseite anzeigen.

Hoffe das hilft!


2

Sie müssen die Ordnerberechtigungen auf Ihrem Server überprüfen und überprüfen, ob das Konto, mit dem Sie Ihre Anwendung ausführen, Zugriff auf diesen Ordner hat.


0

Für mich war der Zugriff auf anonyme Benutzer auf Serverebene in Ordnung, variierte jedoch nur in einem meiner "virtuellen" Ordner.

Ich brauchte einiges, um zu erfahren, dass IIS auch auf der Ebene der virtuellen Ordner über "Authentifizierungs" -Einstellungen verfügt - hoffentlich hilft dies jemand anderem bei meiner Situation.


-4

Eine weitere einfache Lösung bestand darin, die lokale IIS-Site (aus dem IIS-Manager heraus) zu löschen und dann das virtuelle Verzeichnis über die "Eigenschaften" Ihres Webprojekts in Visual Studio neu zu erstellen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.