我编写了代码来设置文件夹的权限。我开发的功能是
public void SetPermission(string user,FileSystemRights rights)
{
DirectoryInfo dInfo = new DirectoryInfo(folderPath);
DirectorySecurity oDirectorySecurity = new DirectorySecurity();
oDirectorySecurity.AddAccessRule(new FileSystemAccessRule(user, rights, AccessControlType.Allow));
dInfo.SetAccessControl(oDirectorySecurity);
}
此功能可以很好地为用户设置权限。 但是当我检查文件夹属性 - >安全性,用户添加。但是没有选中复选框的权限 打开“高级”对话框。在此框中,我可以看到为用户设置的权限。
所以我的问题是为什么安全选项卡上没有选中复选框,但它是否在高级选项卡中?
请帮帮我!!!!!!
答案 0 :(得分:1)
我也碰到了这个。这似乎是一个服务补丁的事情。
您可以阅读我在http://jspot.jerryhanel.com/2009/01/08/c-filedirectory-permissions/
修复的方式简短版本:您必须为所有用户设置所有ACL的标志。是的......这很难看。当您添加Service Pack 3时,复选标记会再次消失。如果有人有比这更清洁的解决方案,请告诉我。
我的网站上有代码。
更新:网址现在指向新网站。
答案 1 :(得分:0)
使用dInfo.GetAccessControl初始化oDirectorySecurity可能会有所帮助。 您也可以尝试调用oDirectorySecurity.SetOwner。
如果未将权限应用于更正对象,则有时权限仅显示在高级中。尝试在FileSystemAccessRule对象上设置继承/提示标志。