1

我编写了代码来设置文件夹的权限。我开发的功能是

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);
}

此功能可以很好地为用户设置权限。但是当我检查文件夹 Properties -> Security 时,用户添加了。但是在复选框打开高级对话框中没有选中任何权限。在这个框中,我可以看到我为用户设置的权限。

所以我的问题是为什么在安全选项卡上没有选择复选框,但它在高级选项卡中?

请帮我!!!!!!

4

2 回答 2

1

我也遇到了这个。这似乎是一个服务补丁的事情。

您可以在http://jspot.jerryhanel.com/2009/01/08/c-filedirectory-permissions/阅读我如何修复它

简短版本:您必须为所有用户的所有 ACL 设置一个标志。是的……很丑。当您添加 Service Pack 3 时,复选标记会再次消失。如果有人有比这更清洁的解决方案,请告诉我。

我的网站上有相应的代码。

更新:URL 现在指向新站点。

于 2009-01-09T21:34:22.270 回答
0

使用 dInfo.GetAccessControl 初始化 oDirectorySecurity 可能会有所帮助。您也可以尝试调用 oDirectorySecurity.SetOwner。

有时权限仅在未应用于正确对象时才会提前显示。尝试在 FileSystemAccessRule 对象上设置继承/传播标志。

于 2008-12-04T07:58:35.750 回答