如何设置文件夹权限
本文关键字:文件夹 权限 设置 何设置 | 更新日期: 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 设置继承和传播标志
希望这能帮助。。。