Ich habe eine Windows Forms-Anwendung, die als eine Art Verwaltungsmodul für eine ASP.NET-Webanwendung dient. Die Webanwendung dient mehreren Ländern, und Ordner werden erstellt, wenn den Anwendungsdaten neue Länder hinzugefügt werden.Wie erstellen Sie Ordner und legen gleichzeitig Zugriffsberechtigungen für sie fest?
Leider auf den neu hinzugekommenen Länder, die ich mit der Web-Anwendung in eine Ausnahme ausgeführt, wenn ich gehen und versuchen, Dateien in den Ordner zu schreiben:
System.UnauthorizedAccessException: Access to the path 'C:\...' is denied.
Mit der Web-Anwendung mit ASP.NET Identitätswechsel, es ist offensichtlich, dass der Standard-IIS-Benutzer (MACHINENAME \ IUSR_MACHINENAME) keine Berechtigungen zum Schreiben in den Ordner hat.
Wie gewähre ich die Berechtigung der Standard-IIS-Benutzer beim Erstellen von Ordnern?
Ich verstehe, dass
System.IO.Directory.CreateDirectory(string path, DirectorySecurity directorySecurity)
dies tun sollte, aber ich verstehe nicht, wie das Protokoll auf Namen auf dem DirectorySecurity
Objekt angeben.
Dies ist keine gute Lösung, da das Verzeichnis zunächst nur Standardberechtigungen hat, die dann ersetzt werden. Im Prinzip ist es möglich, das Verzeichnis zu entführen, indem man seinen Besitzer ändert, um den ursprünglichen Ersteller zu sperren. Ein Beispiel für die Angabe von DirectorySecurity als Teil des CreateSubDirectory finden Sie unter http://stackoverflow.com/questions/1532014/file-permissions-do-not-inherit-directory-permissions –