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

我可以使用诸如的代码获取Active Directory对象的访问规则集合

ActiveDirectorySecurity ads = directoryEntry.ObjectSecurity; AuthorizationRuleCollection arc = ads.GetAccessRules(true, true, typeof(NTAccount)); foreach (ActiveDirectoryAccessRule adar in arc) { // get rule properties } 

但是,我想知道每条规则是否也属于ActiveDirectoryAccessRule子类型之一,例如PropertyAccessRule。

这可能吗? 我没有看到提供此信息的类属性。

你可以用来检查类型 – 例如:

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

您可以使用以下命令执行此操作,因为所有都inheritance自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