C# 保存目录权限

标签 c# permissions file-permissions directory-permissions

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

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

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

感谢任何帮助。

最佳答案

如果您使用 System.ManagementSystem.Management.Instrumentation 命名空间,您可以使用 Directory.GetAccessControl 方法来获取 who有权访问文件夹。然后,您可以使用 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");
}

至于设置所有者,这里有一篇很好的 SO 文章介绍如何设置:

C# - How to use DirectorySecurity.SetOwner() ? I'm having troubles

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

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

关于C# 保存目录权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6084880/

相关文章:

Django - 向用户授予自定义权限

python - 在 Django 中提供大文件(高负载)

android - 在 Android/Unity 上使用 MODE_WORLD_READABLE 共享文件

postgresql - 安装 Postgres 自定义类型 - 无法访问文件 "...": Permission denied

c# - DisplayNameAttribute 的本地化

c# - 使用 Dapper 在自定义 Poco 对象中返回模型

c# - 在套接字监听器中检查请求是否通过 HTTP 或 HTTPS

c# - 在 C# 'Dataset' 中获取标识列值 --Access 数据库

c# - 写入文件时出现未经授权的访问错误。我该怎么办?

c# - 将文件复制到目录(c : or c:program files) that i dont have permission