Windows-Dateisicherheit, eine Zugriffsregel zu entfernen
-
13-09-2019 - |
Frage
Ich habe den folgenden Code, die den Zugang von Benutzern aus einem bestimmten Ordner entfernen sollten. Leider ist es nicht (die Zugriffsregel bleibt an Ort und Stelle). Es wird keine Ausnahme ausgelöst.
AuthorizationRuleCollection arc = ds.GetAccessRules(true, true, typeof(NTAccount));
foreach (FileSystemAccessRule ar in arc)
{
if (ar.IdentityReference is NTAccount)
{
NTAccount account = ar.IdentityReference as NTAccount;
if (!AdminUsers.Contains(account.Value) &&
ownerAccount != account.Value)
{
ds.RemoveAccessRule(ar);
WriteLog("Removed rule for: " + account);
}
}
}
outputDirectory.SetAccessControl(ds);
Ich kann von meinem Logs sehen, dass die RemoveAccessRule genannt wurde. Warum ist nicht die Regel geworden?
Edit: Die Regel ist eine erbliche Regel. Muss ich etwas anderes zu entfernen vererbte Regeln tun?
Lösung
Hier finden Sie aktuelle SetAccessRuleProtection auf DirectorySecurity
Klasse, aus der Lektüre it..I würden Sie denken .. bräuchten
ds.RemoveAccessRule(ar);
ds.SetAccessRuleProtection(true,false);
spielen, um mit ihm.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow