IIS 7.5 (Windows 7) - HTTP-Fehler 401.3 - Nicht autorisiert


81

Ich versuche, meine ASP.Net-Website auf localhost zu testen, und erhalte den folgenden Fehler:

HTTP Error 401.3 - Unauthorized
You do not have permission to view this directory or page because of
the access control list (ACL) configuration or encryption settings for
this resource on the Web server.

Ich habe die folgenden Benutzer im Website-Anwendungsordner mit vollständigen Lese- / Schreibberechtigungen:

  • NETZWERKDIENST
  • IIS_IUSRS
  • SYSTEM
  • Administratoren
  • Nathan (ich)

Was kann ich versuchen, um dies zu beheben?


Ich habe dieses Problem jetzt für ein paar Stunden gejagt. Ich habe bereits IUSR und Server \ IUSR wird die Leseberechtigung. Mein Problem stellte sich als verschlüsselte Ordner heraus, die aus einer Zip-Datei extrahiert wurden. Wenn der Ordnername grün ist, entfernen Sie das Kontrollkästchen aus den erweiterten Einstellungen des Eigenschaftenfelds. Dies hat mein Problem behoben.
Lionel Morrison

Antworten:


123

IIS 7 erstellt auch "IUSR" als Standardbenutzer, um über IIS auf Dateien zuzugreifen. So machen Benutzer IUSR hat Lesezugriff auf Dateien / Ordner.

Wie überprüfe ich, ob IUSR Access gelesen hat? Klicken Sie mit der rechten Maustaste auf -> Ordner -> Eigenschaften -> Registerkarte Sicherheit. Überprüfen Sie, ob sich IUSR in der Liste der Gruppen- oder Benutzernamen befindet.

Klicken Sie auf Bearbeiten -> Hinzufügen -> Erweitert -> Jetzt suchen -> Wählen Sie IUSR aus und klicken Sie viermal auf OK


5
Stellen Sie sicher, dass Sie von der richtigen Stelle aus suchen. Ich habe auf meiner Arbeitsdomäne nach IUSR gesucht und nichts gefunden. Dann habe ich den Standort in meinen Computernamen geändert.
Mike Blandford

8
Hinweis: Damit IUSR und IIS_IUSRS auf meinem Computer ausgeführt werden können, müssen sie Zugriff haben. Ich habe versucht, IIS_IUSRS zu entfernen, nachdem ich IUSR hinzugefügt habe. Ich dachte, IUSR sei alles, was ich brauchte, aber es krächzte.
Kdawg

1
Es überraschte mich, dass nur das Hinzufügen IIS_IUSRsnicht genug war; Ich musste auch hinzufügen IUSR. Es lohnt sich daran zu denken: o)
Owen Blacker

Sicher ist der IUSR-Benutzer standardmäßig bereits Mitglied von IIS_IUSRS? Mein Server scheint IUSR nicht in den Standardberechtigungen zu erwähnen, die für wwwroot festgelegt wurden.
NickG

33

Fand dies in einem anderen Forum, also kann ich keine Gutschrift entgegennehmen, aber ich tat es und es funktionierte für mich:

"Versuchen Sie, die Einstellung für die anonyme Authentifizierung in IIS7 zu ändern:

Klicken Sie auf Authentifizierung und klicken Sie auf Bearbeiten, nachdem Sie Anonyme Authentifizierung ausgewählt haben. Wählen Sie im sich öffnenden Fenster die Option Identität des Anwendungspools und klicken Sie auf OK. "


5
Das hat es für mich getan.
Chris Marisic

Ich benutze Identitätswechsel und das war irgendwie das Problem. Ich weiß nicht warum, aber es hat funktioniert!
Jarrod

Das hat mich daran gehindert, mir heute die Haare auszureißen. Danke.
Pause

In IIS 8.5 ist es anscheinend die Standardeinstellung für eine neue Anwendung, nicht die Anwendungspoolidentität zu verwenden, sondern nur IUSR. Scheint ein bisschen gotcha zu mir!
Erreger

Schätze, es ist irgendwie sinnvoll, separate Identitäten für "Benutzer, der den App-Pool ausführt" und "Benutzer, der nach" anonymer "Authentifizierung vom App-Pool verkörpert wird" zu wollen - aber nur im Nachhinein und nachdem diese Antwort gefunden wurde!
Shambulator

20

Ich hatte das gleiche Problem in IIS 7.5 unter Windows Server 2008. Für mich haben die folgenden Schritte funktioniert, um das Problem zu beheben:

  • Öffnen Sie den IIS-Manager
  • Klicken Sie auf die Website, die Sie bearbeiten möchten
  • Doppelklicken Sie auf Authentifizierung
  • Klicken Sie auf Anonyme Authentifizierung und dann unter Aktionen auf Bearbeiten
  • Ändern Sie, um die Anmeldeinformationen für die Anwendungspool-Identität anstelle des bestimmten Benutzers zu verwenden (meiner war IUSR).

Nachdem ich diese Änderung vorgenommen habe, sind meine 401.3-Fehler verschwunden.


10

Verwenden Sie einen Anmeldemechanismus oder nur eine anonyme Authentifizierung?

Wenn Sie anonym sind, rufen Sie den IIS-Manager auf, wählen Sie im Authentifizierungssymbol den Namen der anonymen Authentifizierung aus und klicken Sie dann unter Aktionen auf die Schaltfläche Bearbeiten. Überprüfen Sie, welcher Benutzer dort angegeben ist, und stellen Sie sicher, dass er über Berechtigungen für die Site-Dateien / -Ordner verfügt.

Wenn Sie über ein Anmeldesystem verfügen, stellen Sie sicher, dass die Benutzer, mit denen Sie sich anmelden, über Berechtigungen für die Dateien der Site verfügen, und stellen Sie sicher, dass die ID des Anwendungspools, unter dem Sie ausgeführt werden, mindestens Lesezugriff hat zu den Dateien.


3

Standardmäßig wird mit IIS 7.5 jeder Anwendungspool unter seiner eigenen "virtuellen Identität" ausgeführt. Die Identität des App-Pools sind die Anmeldeinformationen, die für den Zugriff auf das Dateisystem verwendet werden.

Ich bin nicht sicher, wie es funktioniert, aber Microsoft hat dies getan, um die Sicherheit der Standardinstallation zu erhöhen und gleichzeitig die Notwendigkeit zu verringern, in bestimmten Installationsszenarien Dienstkonten zu erstellen. Unabhängig davon müssen Sie dieses Konto mit der "virtuellen Identität" identifizieren und ihm Zugriff auf Ihr Verzeichnis gewähren oder das Dienstkonto des App-Pools ändern.

Die virtuellen App Pool-Identitäten haben den Namen "IIS AppPool \". Wenn Sie also den DefaultAppPool verwenden, lautet die Identität "IIS AppPool \ DefaultAppPool".

Weitere Einzelheiten finden Sie in diesem Artikel.


3

Hi For Me unter IIS 8 funktioniert wie folgt: 1) Gehen Sie zum virtuellen IIS-Verzeichnis - 2) Authentifizierung - 3) Anonyme Authentifizierung - 4) Legen Sie die Identität des Anwendungspools fest.


Sowohl die IUSR-Antwort als auch diese Antwort sind für eine vollständige Lösung in allen Fällen erforderlich, auf die ich gestoßen bin
Brian Knoblauch

2

Da mir keine der obigen Antworten weitergeholfen hat, dachte ich, ich würde mitteilen, wie ich dieses Problem gelöst habe, als ich auf meinem lokalen Computer mit win7 und IIS7 darauf gestoßen bin.

  • Gehen Sie zu IIS7 -> Anwendungspools

    Suchen Sie den Anwendungspool Ihrer Site (in meinem Fall DefaultAppPool), klicken Sie mit der rechten Maustaste und wählen Sie Erweiterte Optionen.

    Suchen Sie das Kapitel Prozessmodell und ändern Sie das Feld Identität eines Benutzers, von dem Sie sicher sind, dass er Zugriff auf die Dateien in Ihrem Websiteordner hat (in meinem Fall der lokale Administrator).



1

Versuchen Sie dies ... Gehen Sie zur Computerverwaltung (klicken Sie mit der rechten Maustaste auf meinen Computer und wählen Sie Verwalten) -> Lokale Benutzer und Gruppen -> Benutzer -> Wählen Sie IUSR_MACHINENAME -> Klicken Sie mit der rechten Maustaste auf Eigenschaften -> Stellen Sie sicher, dass es sich um ein Mitglied handelt von IIS_WPG und Benutzern und nicht Gästen.


Ich arbeite mit Server 2008 R2 und das IUser-Konto ist in der Liste nicht verfügbar.


1

Versuchen Sie, die Clientseite von IIS mithilfe von IIS zu installieren, aspnet_regiis -cund setzen Sie sie dann zurück.


1

Für Benutzer, denen dies nicht ausreicht:

Ich habe es geschafft, damit zu arbeiten:

  • Öffnen Sie die Funktionsansicht Ihrer Website.
  • Gehen Sie zu Handlerzuordnungen.
  • Suchen Sie den Pfad für .cshtml
  • Klicken Sie mit der rechten Maustaste und klicken Sie auf Funktionsberechtigungen bearbeiten
  • Wählen Sie Ausführen
  • Klicken Sie auf OK.

Versuchen Sie nun, Ihre Website zu aktualisieren.

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.