28 Ocak 2016 Perşembe

AccessControl

FileSystemSecurity Sınıfı
Constructor
Hem dosya hem de dizin için şöyle alınabilir.
FileSystemSecurity security;
if (File.Exists(FilePath))
{
  security = File.GetAccessControl(...);
}
else
{
  security = Directory.GetAccessControl(...);
}
GetAccessRules metodu
Şöyle yaparız.
AuthorizationRuleCollection acl =
 security.GetAccessRules(true, true, typeof(SecurityIdentifier));
Her bir rule üzerinde şöyle döneriz. Kuralların bazıları dosya sistemi içindir. Dosya sistemi kuralından Write hakkı ile ilgili olanları alırız. Write hakkının AccessControlType tipi Allow ve Deny olmasına göre sonuç döneriz.
foreach (FileSystemAccessRule rule in accessRules)
{
  if ((FileSystemRights.Write & rule.FileSystemRights) != FileSystemRights.Write) 
    continue;

  if (rule.AccessControlType == AccessControlType.Allow)
    writeAllow = true;
  else if (rule.AccessControlType == AccessControlType.Deny)
    writeDeny = true;
}
DirectorySecurity Sınıfı
DirectorySecurity Sınıfı yazısına taşıdım.


Hiç yorum yok:

Yorum Gönder