|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- using Alphaleonis.Win32.Filesystem;
- using System.Security.AccessControl;
- using System.Security.Principal;
-
- namespace Security2
- {
- public class FileSystemOwner
- {
- private FileSystemInfo item;
- private IdentityReference2 owner;
- private FileSystemSecurity sd;
-
- public FileSystemInfo Item
- {
- get { return item; }
- }
-
- public IdentityReference2 Owner
- {
- get { return owner; }
- }
-
- public IdentityReference2 Account
- {
- get { return owner; }
- }
-
- public string FullName
- {
- get { return item.FullName; }
- }
-
- private FileSystemOwner(FileSystemInfo item, IdentityReference2 owner)
- {
- this.item = item;
- this.owner = owner;
- }
-
- public static FileSystemOwner GetOwner(FileSystemSecurity2 sd)
- {
- return new FileSystemOwner(sd.Item, sd.SecurityDescriptor.GetOwner(typeof(SecurityIdentifier)));
- }
-
- public static void SetOwner(FileSystemSecurity2 sd, IdentityReference2 account)
- {
- sd.SecurityDescriptor.SetOwner(account);
- }
-
- public static FileSystemOwner GetOwner(FileSystemInfo item)
- {
- return GetOwner(new FileSystemSecurity2(item, AccessControlSections.Owner));
- }
-
- public static void SetOwner(FileSystemInfo item, IdentityReference2 account)
- {
- var sd = new FileSystemSecurity2(item, AccessControlSections.Owner);
-
- SetOwner(sd, account);
-
- sd.Write();
- }
-
- public override string ToString()
- {
- return item.FullName;
- }
- }
- }
|