Как в Active Directory определить тип ActiveDirectoryAccessRule? - PullRequest
3 голосов
/ 12 августа 2011

Я могу получить коллекцию правил доступа для объекта Active Directory, используя такой код, как

ActiveDirectorySecurity ads = directoryEntry.ObjectSecurity;
AuthorizationRuleCollection arc = ads.GetAccessRules(true, true, typeof(NTAccount));

foreach (ActiveDirectoryAccessRule adar in arc)
{
    // get rule properties
}

Однако я хотел бы знать, относится ли каждое правило к одному из подтипов ActiveDirectoryAccessRule, например PropertyAccessRule.

Возможно ли это?Я не вижу свойства класса, предоставляющего эту информацию.

1 Ответ

1 голос
/ 12 августа 2011

вы можете использовать is для проверки типа - например:

if (adar is System.DirectoryServices.PropertyAccessRule )
{
// do whatever you need to do if it is a PropertyAccessRule...
}

Вы можете сделать это со следующим, потому что все наследуются от ActiveDirectoryAccessRule:

System.DirectoryServices.CreateChildAccessRule
System.DirectoryServices.DeleteChildAccessRule
System.DirectoryServices.DeleteTreeAccessRule
System.DirectoryServices.ExtendedRightAccessRule
System.DirectoryServices.ListChildrenAccessRule
System.DirectoryServices.PropertyAccessRule
System.DirectoryServices.PropertySetAccessRule

см.http://msdn.microsoft.com/en-us/library/system.directoryservices.activedirectoryaccessrule.aspx#inheritanceContinued

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...