FileSecurity未设置

时间:2011-12-02 06:57:23

标签: c# .net file-security

对于一个单独的项目,我的代码读入一个文件,销毁旧文件并构建新文件等。但是我需要从旧文件中获取FileSecurity AccessControl并将其应用于新文件。我是C#的新手,所以我之前没有使用过FileSecurity,下面是我提出的,它没有错误,但它似乎也不起作用。

public static void Main()
{
    try
    {
        string fileName = "test.txt";
        FileInfo fi = new FileInfo(fileName);
        FileSecurity fs = fi.GetAccessControl();

        Console.WriteLine("Got perms");
        Console.Read();

        Console.WriteLine("Adding access control to " + fileName);

        fi.SetAccessControl(fs);

        Console.WriteLine("Done.");
    }
    catch (Exception e)
    {
        Console.WriteLine(e);
    }
    Console.Read();
}

我要做的测试是让用户完全控制文件。将程序运行到上半部分,删除文件并在没有完全控制的情况下再次创建它,然后让程序完成。但是,当我转到文件的安全选项卡时,它不会显示完全控制权。 我还尝试在删除旧文件后创建一个新的FileInfo对象,但这也不起作用。

任何建议都会非常有用

1 个答案:

答案 0 :(得分:0)

这样的事情应该有效

        string dir = Path.GetDirectoryName(tbFileLocation.Text);

        DirectoryInfo di = new DirectoryInfo(dir);

        DirectorySecurity ds = di.GetAccessControl();

        FileSystemRights fsRights = FileSystemRights.FullControl;
        FileSystemAccessRule accessRule = new FileSystemAccessRule("Dummy", fsRights, AccessControlType.Allow);

        ds.AddAccessRule(accessRule);

        di.SetAccessControl(ds);