mirror of https://github.com/raandree/NTFSSecurity
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.7 KiB
65 lines
1.7 KiB
using System.Collections.Generic;
|
|
using System.Security.AccessControl;
|
|
|
|
namespace Security2
|
|
{
|
|
public class FileSystemEffectivePermissionEntry
|
|
{
|
|
private IdentityReference2 account;
|
|
private uint accessMask;
|
|
private string objectPath;
|
|
|
|
public IdentityReference2 Account { get { return account; } }
|
|
|
|
public uint AccessMask { get { return accessMask; } }
|
|
|
|
public string FullName { get { return objectPath; } }
|
|
|
|
public string Name
|
|
{
|
|
get
|
|
{
|
|
if (!string.IsNullOrEmpty(FullName))
|
|
{
|
|
return System.IO.Path.GetFileName(FullName);
|
|
}
|
|
else
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
|
|
public FileSystemRights AccessRights
|
|
{
|
|
get
|
|
{
|
|
return (FileSystemRights)accessMask;
|
|
}
|
|
}
|
|
|
|
private List<string> accessAsString;
|
|
public List<string> AccessAsString { get { return accessAsString; } }
|
|
|
|
public FileSystemEffectivePermissionEntry(IdentityReference2 identity, uint AccessMask, string FullName)
|
|
{
|
|
this.account = identity;
|
|
this.accessMask = AccessMask;
|
|
this.objectPath = FullName;
|
|
this.accessAsString = new List<string>();
|
|
|
|
if (accessMask == 0)
|
|
{
|
|
accessAsString.Add("None");
|
|
}
|
|
else
|
|
{
|
|
string tempString = ((FileSystemRights)this.accessMask).ToString();
|
|
foreach (var s in tempString.Split(','))
|
|
{
|
|
this.accessAsString.Add(s);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|