Okay. Hier versuchen wir, eine Classic ASP-Website unter IIS 7.5 in Windows Server 2008 R2 einzurichten. Unter dem Stammverzeichnis der Website befindet sich ein Ordner mit dem Namen dbc. In dieser Datei werden bestimmte Informationen gelesen und geschrieben, während jede Seite verarbeitet wird.
Das Problem ist, wenn ich IUSR-Schreibberechtigungen erteile und IIS_IUSRS-Schreibberechtigungen oder DefaultAppPool-Schreibberechtigungen erhalte, wird der Zugriff auf den Pfad 'E: .. \ websiteroot \ dbc \ filename.txt' verweigert.
Aber wenn ich JEDEM Schreibzugriff auf diesen dbc-Ordner erteile, erhalte ich keine Fehlermeldung, alles scheint perfekt zu sein.
Weitere Informationen: Die Website wird im klassischen Pipeline-Modus ausgeführt. Die anonyme Authentifizierung ist aktiviert (möglicherweise ist sie die einzige aktivierte Authentifizierung). Ich habe die anonyme Authentifizierung mithilfe des IUSR-Kontos sowie der Anwendungspoolidentität versucht. In meinem Fall ist ApplicationPoolIdentity die Identität für die Authentifizierung der Website. Wir verwenden ein COM + für Datei-E / A. Und Classic ASP Server.CreateObject, um ein Objekt daraus zu instanziieren. Der COM + wird als Netzwerkdienst ausgeführt.
Gedanken? Ich möchte JEDEM keine Schreibberechtigung erteilen. Vermisse ich etwas
Gelöst: Hier ist was ich getan habe.
Meine Website mit dem Namen CipherDemo wurde unter einer AppPoolIdentity in IIS 7.5 ausgeführt, die von Identity IIS AppPool \ CipherDemo gefunden werden konnte. Ich habe ICACLS verwendet, um RW-Berechtigungen für diesen Ordner zu erteilen.
und das COM +, das tatsächlich die Datei-E / A ausführte, wurde unter der Netzwerkdienstidentität ausgeführt. Als ich Process Monitor zum Verfolgen des Zugriffsverweigerungsfehlers verwendete, stellte sich heraus, dass der Netzwerkdienst nur über eine Leseberechtigung für diesen Ordner verfügt.
Ich habe ICACLS "Ordnername" / grant: r "NT AUTHORITY \ NETWORKSERVICE" :( OI) (CI) RXW / T verwendet, um Schreibzugriff auf diesen Ordner zu gewähren.
Und es gelöst.
Ich hatte die Absicht, dass, da die Website als CipherDemo Identity ausgeführt wird, dies das Konto ist, mit dem über COM + auf die Datei zugegriffen wird. Es ist jedoch peinlich herauszufinden, dass COM + immer noch an seinen eigenen Identitätsgrenzen funktioniert.
quelle
Sie können das Konto über die NTFS-GUI hinzufügen, indem Sie es direkt eingeben. Der Name hat das Format von
IIS APPPOOL\<<app pool name>>
zIIS APPPOOL\DefaultAppPool
. (Siehe diesen Microsoft-Supportartikel. )Eine alternative Lösung: Ich habe das Konto "Netzwerkdienst" als Benutzer des Anwendungspools verwendet und ihm die Schreibberechtigung erteilt.
quelle
Wenn Sie dem bestimmten Benutzer nur die Berechtigung zum Schreiben von Ordnern erteilen möchten, sollten Sie auch die "Anonyme Benutzeridentität" der Site in "Bestimmter Benutzer" und nicht in "Anwendungspoolidentität" ändern.
quelle