Hier ist ein Problem mit IIS 7.5 und ASP.NET, mit dem ich recherchiert habe und mit dem ich nichts anfangen kann. Jede Hilfe wäre sehr dankbar.
Meine Frage lautet: Wie ermöglicht IIS und / oder das Betriebssystem unter Verwendung von ASP.NET in IIS 7.5, dass die Webanwendung in einen Ordner schreibt, wie C:\dump
wenn sie unter voller Vertrauenswürdigkeit ausgeführt wird? Wie kommt es, dass ich dem Anwendungspoolbenutzer (in diesem Fall ApplicationPoolIdentity
) keinen expliziten Schreibzugriff hinzufügen muss ?
Soviel weiß ich:
- In IIS 7.5 lautet die Standardidentität für einen Anwendungspool
ApplicationPoolIdentity
. ApplicationPoolIdentity
stellt ein Windows-Benutzerkonto mit dem Namen "IIS APPPOOL \ AppPoolName" dar, das beim Erstellen des Anwendungspools erstellt wird, wobei AppPoolName der Name des Anwendungspools ist.- Der Benutzer "IIS APPPOOL \ AppPoolName" ist standardmäßig Mitglied der
IIS_IUSRS
Gruppe. - Wenn Sie unter Voll vertrauenswürdig ausgeführt werden , können Sie Ihre Web - Anwendung auf viele Bereiche des Dateisystems schreiben (ohne Ordner wie
C:\Users
,C:\Windows
usw.). Beispielsweise kann Ihre Anwendung in einige Ordner schreiben, zC:\dump
. - Standardmäßig
IIS_IUSRS
erhält die Gruppe keinen Lese- oder SchreibzugriffC:\dump
(zumindest keinen Zugriff, der über die Registerkarte "Sicherheit" im Windows Explorer angezeigt wird ). - Wenn Sie den Schreibzugriff verweigern
IIS_IUSRS
, wird beim Versuch, in den Ordner zu schreiben (wie erwartet), eine SecurityException angezeigt.
Wie wird dem Benutzer "IIS APPPOOL \ AppPoolName" unter Berücksichtigung all dessen Schreibzugriff gewährt? Der Prozess w3wp.exe wird als dieser Benutzer ausgeführt. Wie kann dieser Benutzer also in einen Ordner schreiben, auf den er scheinbar keinen expliziten Zugriff hat?
Bitte beachten Sie, dass ich verstehe, dass dies wahrscheinlich aus Bequemlichkeitsgründen getan wurde, da es schwierig wäre, einem Benutzer Zugriff auf jeden Ordner zu gewähren, in den er schreiben muss, wenn Sie unter Full Trust ausgeführt werden. Wenn Sie diesen Zugriff einschränken möchten, können Sie die Anwendung jederzeit unter Medium Trust ausführen. Ich bin daran interessiert herauszufinden, wie das Betriebssystem und / oder IIS diese Schreibvorgänge zulässt, obwohl anscheinend kein expliziter Dateisystemzugriff gewährt wird.
Klicken Sie mit der rechten Maustaste auf den Ordner.
Klicken Sie auf Eigenschaften
Klicken Sie auf die Registerkarte Sicherheit. Sie werden so etwas sehen:
Aktivieren / deaktivieren Sie den Zugriff, den Sie dem Konto gewähren müssen
Klicken Sie auf die Schaltfläche Übernehmen und dann auf OK.
quelle
Jeder Anwendungspool in IIs erstellt standardmäßig unter c: \ users einen eigenen sicheren Benutzerordner mit vollständiger Lese- / Schreibberechtigung. Öffnen Sie Ihren Benutzerordner und sehen Sie, welche Anwendungspoolordner vorhanden sind. Klicken Sie mit der rechten Maustaste und überprüfen Sie deren Rechte für das zugewiesene virtuelle Anwendungspoolkonto. Sie sollten sehen, dass Ihr Anwendungspoolkonto bereits mit Lese- / Schreibzugriff hinzugefügt wurde, der dem Stammverzeichnis und den Unterordnern zugewiesen ist.
Diese Art des Dateispeicherzugriffs erfolgt also automatisch und Sie sollten in der Lage sein, in die Ordner der Benutzerkonten der App-Pools zu schreiben, was Sie möchten, ohne etwas zu ändern. Aus diesem Grund wurden virtuelle Benutzerkonten für jeden Anwendungspool erstellt.
quelle
Ich habe dies versucht, um Zugriffsprobleme auf eine IIS-Website zu beheben, die sich in den Ereignisprotokollen → Windows → Anwendung wie folgt manifestierten :
Am Ende musste ich der Windows-
Everyone
Gruppe Lesezugriff auf diesen Ordner gewähren, damit er ordnungsgemäß funktioniert.quelle