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?

War es hilfreich?

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
scroll top