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

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

此功能工作正常设定权限的用户。 但是,当我检查文件夹属性 - >安全,用户添加。但是,没有权限的复选框选中 打开高级对话框。在此框中我可以看到权限,这是我为用户设置。

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

请帮帮我!!!!!!

有帮助吗?

解决方案

我跑进这一点。这似乎是一个服务补丁的事情。

您可以阅读我如何在 HTTP固定它:// jspot.jerryhanel.com/2009/01/08/c-filedirectory-permissions/

在短版:你必须设置一个标志,对所有的ACL为所有用户。是的...它是丑陋的。而当你添加的Service Pack 3,复选标记,再次消失。如果任何人有比这更清洁的解决方案,请让我知道。

我对这些代码在我的网站。

更新:该URL现在指向新的网站

其他提示

这可能有助于利用dInfo.GetAccessControl初始化oDirectorySecurity。 您也可以尝试调用oDirectorySecurity.SetOwner。

有时权限仅在高级显示如果没有应用,他们为校正对象。试试你的FileSystemAccessRule对象上设置继承/ Propigation标志。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top