【发布时间】:2011-11-30 17:22:12
【问题描述】:
我有一个函数可以检查一个组是否是一个组的成员。我有 2 种功能变体,均未按预期工作:
public bool IsGroupGroupMember(GroupPrincipal gp, GroupPrincipal pgp)
{
return gp.IsMemberOf(pgp);
}
与
public bool IsGroupGroupMember(GroupPrincipal gp, GroupPrincipal pgp)
{
if (gp != null && pgp != null)
{
return pgp.Members.Contains(gp);
}
else
{
return false;
}
}
两者看起来很有希望,但总是返回 false。调用 GroupPrincipal.save 方法时,会引发对象已存在错误。
我运行了一个foreach循环来获取父组成员的名称,并与要添加的新成员名称进行比较,毫无疑问该成员确实存在。
我可以使用 LINQ 对名称进行字符串比较,但这并不理想。
什么?如果我做错了什么?是否有更好的方法来确定组中是否存在组。
使用框架 3.5 - 在此先感谢
【问题讨论】:
-
第一种方法对我来说效果很好。你在调用此方法的上下文中提供更多信息吗?
-
从你的问题我了解到选中的
GroupPrinciple(gp) 是要添加到组中的新原则? -
@JPBlanc 感谢您的测试 - 可能是它在对象级别比较组并且在对象级别存在一些差异,我只是不确定。
标签: c# .net-3.5 active-directory