Wie man Berechtigungen für Ordner in c#?
Muss ich den Ordner "Temporäre ASP.NET Dateien" eine Berechtigung schreiben mit c#... und ich verwende diesen code, um ihm den Zugang
DirectoryInfo d1 = new DirectoryInfo(Path.Combine(RuntimeEnvironment.GetRuntimeDirectory(), "Temporary ASP.NET Files"));
DirectorySecurity md1 = d1.GetAccessControl();
string user_1 = fa.TextGuestDomain + "\\" + fa.TextGuestUser;
md1.AddAccessRule(new FileSystemAccessRule(user_1, FileSystemRights.FullControl,InheritanceFlags.ObjectInherit,PropagationFlags.InheritOnly, AccessControlType.Allow));
d1.SetAccessControl(md1);
Wenn ich überprüft die Sicherheitseinstellungen für den Ordner "Temporäre ASP.NET Dateien" nach der Implementierung des Codes werden nicht geprüft, die die Berechtigung "schreiben" check-box, statt dass es überprüft die "spezielle Berechtigungen" ein... ich habe bemerkt, dass selbst wenn ich änderte den Zugang von schreiben, Vollzugriff oder Lesen , es überprüft die "spezielle Berechtigungen" ein....
Dies ist nicht das problem :), das problem ist seine geben nicht den richtigen Zugang, das gebe ich zu... wenn ich ihm Schreibe, er handelt nicht wie, wenn ich ihm die Berechtigung schreiben. Ich weiß nicht, warum !! Mache ich es der falsche Weg ist ??
Hinweis:
wenn ich dabei bin, es in die manuelle Art und Weise seiner Arbeit, während bei der Verwendung der Codierung Weg. es funktioniert nicht...
Ich hoffe Ihr könnt mir helfen mit, dass...
Vielen Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich kenne deinen Schmerz - Dateisystem-ACLs sind ein Schmerz zu ändern, und auch wenn es scheint zu funktionieren, könnte es brechen, unter Umständen. In Ihrem Fall, gibt es eine einfache Lösung, zum Glück.
Liegt das problem mit
PropagationFlags.InheritOnly
. Dies bedeutet, dass diese Berechtigung nur auf Elemente angewendet, die das Erben von Berechtigungen - z.B. bei der Gewährung der Rechte nur für die Dateien in diesem Verzeichnis und nicht in eines der Unterverzeichnisse.Gewähren Verzeichnis Rechte Erben "normalerweise" (d.h. propagieren, um Unterverzeichnisse und alle Dateien) verwenden Sie die folgenden Werte für InheritanceFlags und PropagationFlags:
InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit
undPropagationFlags.None
.Dem obigen code legen Sie die Zugriffsrechte der Ordner auf " Vollzugriff/Lesen-schreiben, um jeden Benutzer (jeder).