C#保存目录权限

C#保存目录权限,c#,permissions,file-permissions,directory-permissions,C#,Permissions,File Permissions,Directory Permissions,我一直在试图找到一种在目录上存储权限的方法。我目前正在使用SetACL来帮助您。如果我可以在没有它的情况下更改目录/注册表的所有权,这将是我的首选,但情况不同。例如: 检查当前所有者和该所有者的权限。单击按钮时更改权限和所有者>单击另一个按钮时将其更改回原始状态 为了解决为什么的问题,我的团队提供技术支持。我们远程进入电脑,执行t/s,然后离开。我们需要能够更改权限,然后将其恢复到原来的状态 非常感谢您的帮助。如果您使用System.Management和System.Management.In

我一直在试图找到一种在目录上存储权限的方法。我目前正在使用SetACL来帮助您。如果我可以在没有它的情况下更改目录/注册表的所有权,这将是我的首选,但情况不同。例如:

检查当前所有者和该所有者的权限。单击按钮时更改权限和所有者>单击另一个按钮时将其更改回原始状态

为了解决为什么的问题,我的团队提供技术支持。我们远程进入电脑,执行t/s,然后离开。我们需要能够更改权限,然后将其恢复到原来的状态


非常感谢您的帮助。

如果您使用
System.Management
System.Management.Instrumentation
名称空间,您可以使用
Directory.GetAccessControl
方法获取谁有权访问文件夹。然后,您可以使用
AddAccessRule
SetAccessControl
方法实际应用新权限。完成后,可以删除新权限。以下是一篇文章,介绍如何更改文件夹的权限:

作者使用的基本代码如下:

DirectoryInfo myDirectoryInfo = new DirectoryInfo(yourFolderHere);

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

// Builds a new user string for who we want to give permissions to
string User = System.Environment.UserDomainName + "\\" + yourUserName; 

// Creates the permissions to apply 
myDirectorySecurity.AddAccessRule(new FileSystemAccessRule(User, 
                                  FileSystemRights.FullControl, AccessControlType.Allow));

// Set the new access settings. 
myDirectoryInfo.SetAccessControl(myDirectorySecurity);

// Showing a Success Message
MessageBox.Show("Permissions Altered Successfully");
}
关于设置所有者,这里有一篇关于如何设置所有者的好文章:

但是,如果您想将所有者设置为其他人(因为我假设您不需要在用户已经有权分配所有权权限时将所有权权限分配给用户),我不相信上述方法不会起作用。我找到了关于如何将所有者设置为您以外的其他人的文档。以下是链接:


BiggsTRC,我将测试您刚才发布的内容。谢谢你提供这么多信息!周一早上到期的项目,再次感谢您这么快就回来了quickly@John安德鲁斯-很高兴能帮上忙。如果你需要帮助或者被困在什么地方,那就大声喊出来吧。我想看到你成功。好的,我有它,这样我可以更改所有者和设置权限。两件事:1当我为一个帐户设置权限时,它只是添加了另一个具有“特殊权限”的帐户;2我仍然无法存储权限。尝试了又尝试,但它不起作用。以下是我到目前为止得到的结果…仍然没有办法保存它,但如果设置了继承,则我将获得用户的完全权限,然后删除权限并重置继承。“我想应该解决一下存储问题。@John Andrews-这里有一个链接,其中有一个示例可能会对您有所帮助。看起来他们的例子正是您想要做的: