如何设置文件夹权限

本文关键字:文件夹 权限 设置 何设置 | 更新日期: 2023-09-27 18:24:11

如何创建/编辑/向特定文件夹添加文件夹权限?本地磁盘C中有一个名为"test"的文件夹。如何使用C#设置该文件夹的权限?

我已经写了一些代码:

public void getusers()
{
    SelectQuery squery = new SelectQuery("Win32_UserAccount", "Domain='" + System.Environment.UserDomainName.ToString() + "'");
    try
    {
        ManagementObjectSearcher msearchar = new ManagementObjectSearcher(squery);
        foreach (ManagementObject mobject in msearchar.Get())
        {
            comboBox1.Items.Add(mobject["Name"]);
        }
    }
    catch (Exception e) { MessageBox.Show(e.ToString()); }
}
private void button1_Click(object sender, EventArgs e)
{
    FolderBrowserDialog fbd = new FolderBrowserDialog();
    fbd.ShowDialog();
    textBox1.Text = fbd.SelectedPath.ToString();
}
private void button2_Click(object sender, EventArgs e)
{
    DirectoryInfo myDirectoryInfo = new DirectoryInfo(textBox1.Text);
    DirectorySecurity myDirectorySecurity = myDirectoryInfo.GetAccessControl();
    string User = System.Environment.UserDomainName + "''" + comboBox1.SelectedItem.ToString();
    myDirectorySecurity.AddAccessRule(new FileSystemAccessRule(User, FileSystemRights.FullControl, InheritanceFlags.ContainerInherit, PropagationFlags.None, AccessControlType.Allow));
    //myDirectorySecurity.AddAccessRule(new FileSystemAccessRule(User, FileSystemRights.Write, InheritanceFlags.ContainerInherit, PropagationFlags.None, AccessControlType.Allow));
    myDirectoryInfo.SetAccessControl(myDirectorySecurity);
    MessageBox.Show("Permissions Altered Successfully" + User);
}

此代码已经成功地将用户添加到文件夹中,但为该文件夹设置的权限I根本没有继承。我错过什么了吗?或者有人可以指导我如何继承该文件夹的权限吗?

如何设置文件夹权限

如果您所说的继承意味着所有子对象都获得相同的权限,则需要将PropagationFlags设置为InheritOnly。此外,如果希望文件也与规则集的权限相匹配,请将InheritanceFlags更改为ObjectInherit。试着用下面这行。

myDirectoryInfo.AddAccessRule(new FileSystemAccessRule(User, FileSystemRights.FullControl, InheritanceFlags.ObjectInherit, PropagationFlags.InheritOnly, AccessControlType.Allow)); 

在我看来,你只是缺少了这个标志,你可以使用参数列表中的位运算符加入它:

InheritanceFlags.ObjectInherit

此线程中有更多详细信息,包括指向谷歌电子表格的链接,其中包含权限和设置矩阵:使用set acl和powershell 设置继承和传播标志

希望这能帮助。。。