C# 从windows文件夹中删除权限
我在远程服务器上有一个widows文件夹,希望从中删除特定用户的权限。我尝试了很多方法,但似乎都不管用 以下代码没有错误,但权限保持不变。我是否没有使用正确的对象,或者缺少使用这些对象的步骤?如蒙协助,将不胜感激 目录名作为共享传递,例如。\myserver\myfolderC# 从windows文件夹中删除权限,c#,windows,permissions,C#,Windows,Permissions,我在远程服务器上有一个widows文件夹,希望从中删除特定用户的权限。我尝试了很多方法,但似乎都不管用 以下代码没有错误,但权限保持不变。我是否没有使用正确的对象,或者缺少使用这些对象的步骤?如蒙协助,将不胜感激 目录名作为共享传递,例如。\myserver\myfolder private void removePermissions(string dirName, string username) { string user = System.Environment.
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);
}
}
}
创建新ACL后,需要将其应用于文件夹 加
循环后。您是否使用提升的(以管理员身份运行)权限执行应用程序?是-我是执行的域管理员。我可以通过代码添加任意多的权限,但不能删除任何via代码。哎呀,前面的评论说得太快了。这个技巧做得很好。谢谢Richard。@ChibuezeOpata:在英国/国际英语中,“诡计”一词并不像我在美国英语中所说的那样意味着欺骗或不当行为。“那就行了”是一个常见的表达方式,意思就是“行得通”。
dirinfo.SetAccessControl(dsec);