在 C#.NET 中设置 NTFS 权限

发布于 2024-12-05 02:20:25 字数 62 浏览 0 评论 0原文

如何在 C#.NET 中设置 NTFS 权限?我正在尝试更改 .NET 中的读/写权限。我是新手,请大家帮忙!

How do I set NTFS permissions in C#.NET? I am trying to change permissions for read/write in .NET. I'm a newbie, please assist!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

逆光飞翔i 2024-12-12 02:20:26

你应该能够做到
System.Security.AccessControl 命名空间。

System.Security.AccessControl;


public static void AddDirectorySecurity(string FileName, string Account, FileSystemRights Rights, AccessControlType ControlType)
  {
     // Create a new DirectoryInfo object.
     DirectoryInfo dInfo = new DirectoryInfo(FileName);


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


    // Add the FileSystemAccessRule to the security settings. 
    dSecurity.AddAccessRule(new FileSystemAccessRule(Account,
    Rights, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None,
    ControlType));


    // Set the new access settings.
    dInfo.SetAccessControl(dSecurity);


 }

调用示例:

//Get current user
string user = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
//Deny writing to the file
AddDirectorySecurity(@"C:\Users\Phil\Desktop\hello.ini",user, FileSystemRights.Write, AccessControlType.Deny);

you should be able to do it with
System.Security.AccessControl name space.

System.Security.AccessControl;


public static void AddDirectorySecurity(string FileName, string Account, FileSystemRights Rights, AccessControlType ControlType)
  {
     // Create a new DirectoryInfo object.
     DirectoryInfo dInfo = new DirectoryInfo(FileName);


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


    // Add the FileSystemAccessRule to the security settings. 
    dSecurity.AddAccessRule(new FileSystemAccessRule(Account,
    Rights, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None,
    ControlType));


    // Set the new access settings.
    dInfo.SetAccessControl(dSecurity);


 }

Example Call:

//Get current user
string user = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
//Deny writing to the file
AddDirectorySecurity(@"C:\Users\Phil\Desktop\hello.ini",user, FileSystemRights.Write, AccessControlType.Deny);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文