特定のユーザーのアクセス許可を削除したいリモート サーバーに widows フォルダーがあります。私は多くの方法を試しましたが、何もうまくいかないようです。
次のコードでエラーは発生しませんが、許可はそのままです。正しいオブジェクトを使用していないか、これらのオブジェクトでいくつかの手順が抜けていますか? どんな援助でも大歓迎です。
dirName は共有として渡されます (例: \myserver\myfolder)
private void removePermissions(string dirName, string username)
{
string user = System.Environment.UserDomainName + "\\" + username;
DirectoryInfo dirinfo = new DirectoryInfo(dirName);
DirectorySecurity dsec = dirinfo.GetAccessControl(AccessControlSections.All);
AuthorizationRuleCollection rules = dsec.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount));
foreach (AccessRule rule in rules)
{
if (rule.IdentityReference.Value == user)
{
bool value;
dsec.PurgeAccessRules(rule.IdentityReference);
dsec.ModifyAccessRule(AccessControlModification.RemoveAll, rule, out value);
MessageBox.Show("Removed permission from " + dirName + " for " + user);
}
}
}