액세스 규칙을 제거하는 Windows 파일 보안
-
13-09-2019 - |
문제
다음 코드가있어 특정 폴더에서 사용자의 액세스를 제거해야합니다. 불행히도 (액세스 규칙이 유지되지는 않습니다). 예외는 던져지지 않습니다.
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);
내 통나무에서 removeAccessrule이 호출되었음을 알 수 있습니다. 규칙이 사라지지 않은 이유는 무엇입니까?
편집하다: 규칙은 상속 규칙입니다. 상속 규칙을 제거하기 위해 다른 일을해야합니까?
해결책
보세요 setAccessRuleProtection ~에 DirectorySecurity
수업, 읽는 것입니다 .. 당신이 필요하다고 생각할 것입니다 ..
ds.RemoveAccessRule(ar);
ds.SetAccessRuleProtection(true,false);
그것으로 놀아라.
제휴하지 않습니다 StackOverflow