在Active Directory中,如何确定ActiveDirectoryAccessRule的类型?

时间:2011-08-11 21:03:18

标签: c# active-directory

我可以使用

等代码获取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 个答案:

答案 0 :(得分:1)

您可以使用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

相关问题