【问题标题】:Directory/File Permission Issue目录/文件权限问题
【发布时间】:2010-09-24 03:24:27
【问题描述】:

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

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 时,用户添加了。但是复选框中没有选中任何权限 打开高级对话框。在这个框中,我可以看到我为用户设置的权限。

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

请帮帮我!!!!!!

【问题讨论】:

    标签: c# .net .net-2.0 permissions file-permissions


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      【讨论】:

      • 我已经修复了链接。对此感到抱歉。
      猜你喜欢
      • 1970-01-01
      • 2018-01-06
      • 2020-05-29
      • 2015-05-28
      • 2011-08-18
      • 1970-01-01
      • 2011-07-11
      • 2012-02-11
      • 2010-12-04
      相关资源
      最近更新 更多