1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| string pathtmp = @"c:\test";
string NtAccountName = @"LBI\ancu";
DirectoryInfo di = new DirectoryInfo(pathtmp);
System.Security.AccessControl.DirectorySecurity acl = di.GetAccessControl(System.Security.AccessControl.AccessControlSections.All);
System.Security.AccessControl.AuthorizationRuleCollection rules = acl.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount));
//Go through the rules returned from the DirectorySecurity
foreach (AuthorizationRule rule in rules)
{
//If we find one that matches the identity we are looking for
if (rule.IdentityReference.Value.Equals(NtAccountName, StringComparison.CurrentCultureIgnoreCase))
{
//Cast to a FileSystemAccessRule to check for access rights
if ((((FileSystemAccessRule)rule).FileSystemRights & FileSystemRights.WriteData) > 0)
{
Console.WriteLine(string.Format("{0} has write access to {1}", NtAccountName, pathtmp));
}
else
{
Console.WriteLine(string.Format("{0} does not have write access to {1}", NtAccountName, pathtmp));
}
}
} |
Partager