繁体   English   中英

C#保存目录权限

[英]C# save directory permissions

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

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

为了解决原因问题,我的团队提供技术支持。 我们远程进入计算机,执行我们的t / s并离开。 我们需要能够更改权限然后将其恢复原样。

任何帮助表示赞赏。

如果使用System.ManagementSystem.Management.Instrumentation命名空间,则可以使用Directory.GetAccessControl方法来获取有权访问文件夹的人员。 然后,您可以使用AddAccessRuleSetAccessControl方法实际应用新权限。 完成后,您可以删除新的权限。 这篇文章将指导您如何更改文件夹的权限:

http://www.redmondpie.com/applying-permissions-on-any-windows-folder-using-c/

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

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");
}

至于设置所有者,这是一篇关于如何做的好文章:

C# - 如何使用DirectorySecurity.SetOwner()? 我遇到了麻烦

但是,如果您想将所有者设置为其他人(因为我认为当用户已经有权分配所有权权限时,您不需要为用户分配所有权权限),上述方法将无效不相信。 我找到了关于如何将所有者设置为非自己的人的文档。 链接在这里:

http://blog.salamandersoft.co.uk/index.php/2009/10/setting-the-owner-of-files-and-directories-in-c/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM