我想扩展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)创建每个主体,并对用户等...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top