扩展GroupPrincipal和Members属性
-
28-09-2019 - |
题
我想扩展GroupPrincipal
类以处理一些自定义属性:
通用标签
我如何覆盖Members
属性的MyGroupPrincipal
属性,以便如果它的成员是一个组,则返回MyGroupPrincipal
的实例而不是GroupPrincipal
的实例?我想写例如
通用标签
解决方案
无法直接覆盖GroupPrincipal的Members属性。相反,您可以滚动自己的方法(很抱歉,没有明确的代码,但是我在代码中使用了以下所述解决方案的某些部分)。
我发现,使用AccountManagement库很多次,您只需要使用基本DirectoryEntry即可正确完成工作。您可以使用group.GetUnderlyingObject()
访问基础对象,然后通过迭代deGroup.Properties("member")
读取成员资格。读取每个成员类型(不记得属性名称,也许是'member.SchemaClassName'??)和distinguishedName(member.Properties("distinguishedName")(0).ToString()
),然后根据类型创建一个switch语句,在其中您使用专有名称MyGroupPrincipal.FindByIdentity(context, distinguishedName)
创建每个主体,并对用户等...
不隶属于 StackOverflow