【问题标题】:Problem setting file system access rule设置文件系统访问规则的问题
【发布时间】:2011-08-21 16:14:11
【问题描述】:

在本地网络上的我的应用程序中,任何用户都应使用此代码在共享文件夹上创建一个目录。例如,test1 是用户文件夹之一的名称。

DirectoryInfo di = new DirectoryInfo(@"\\Server\Test\test1");
DirectorySecurity ds=new DirectorySecurity();
ds.SetAccessRule(new FileSystemAccessRule(Enviroment.Username,
                       FileSystemRights.FullControl, AccessControlType.Deny)); 
di.Create(ds);

现在,当域中的管理员想要从任何用户读取每个目录时,就会发生此错误:

试图执行未经授权的操作

管理员运行的代码是:

DirectoryInfo di = new DirectoryInfo(@"\\Server\Test\test1");
DirectorySecurity ds=new DirectorySecurity();
ds.SetAccessRule(new FileSystemAccessRule(Enviroment.Username,
                       FileSystemRights.FullControl, AccessControlType.Allow)); 
di.SetAccessControl(ds);

我的错误在哪里?
提前致谢。

【问题讨论】:

  • 如果我尝试这两个代码,我得到相同的错误。" ds.SetAccessRule(new FileSystemAccessRule("everyone", FileSystemRights.FullControl, AccessControlType.Deny)); "
  • 管理员运行的是什么操作系统?
  • @Daniel A. White:windows server 2003.

标签: c# winforms directoryinfo local-network access-rights


【解决方案1】:

你能像下面这样试试吗

        // Create a new DirectoryInfo object.
        DirectoryInfo dInfo = new DirectoryInfo(@"\\Server\Test\test1");

        // Get a DirectorySecurity object that represents the 
        // current security settings.
        DirectorySecurity dSecurity = dInfo.GetAccessControl();

        // Add the FileSystemAccessRule to the security settings. 
        dSecurity.AddAccessRule(new FileSystemAccessRule(Enviroment.Username,
                                                        FileSystemRights.FullControl, AccessControlType.Allow));

        // Set the new access settings.
        dInfo.SetAccessControl(dSecurity);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    相关资源
    最近更新 更多