Setting NTFS permissions in C#.NET

前端 未结 1 528
长发绾君心
长发绾君心 2020-12-03 13:01

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!

相关标签:
1条回答
  • 2020-12-03 13:42

    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);
    
    0 讨论(0)
提交回复
热议问题