【发布时间】:2016-01-06 22:02:25
【问题描述】:
我希望将属于特定组“groupName”的用户列表传递到私有方法中。
DirectoryEntry de = new DirectoryEntry("LDAP://DC=xxxx,DC=net"); // Root Directory //
var ds = new DirectorySearcher(de);
ds.PropertiesToLoad.Add("SAMAccountName");
ds.PropertiesToLoad.Add("member");
ds.Filter = "(&(objectClass=group)(SAMAccountName=" + groupName + "))";
SearchResultCollection AllGroupUsers;
AllGroupUsers = ds.FindAll();
查询返回 3 个属性:- adspath、accountName 和 member。 成员是我真正追求的。我访问成员属性及其值,如以下代码所示:-
if (AllGroupUsers.Count > 0)
{
ResultPropertyValueCollection values = AllGroupUsers[0].Properties["member"];
但是这里发生了一些奇怪的事情。在等号的 RHS 上,AllGroupUsers 具有特定成员的值为“CN=Mike Schomaker R,........”
在等号的 LHS 上,值具有“CN=Mike Schoomaker (OR),.....”
我不太确定这是怎么可能的... AllGroupUsers 下的每个值都不会发生这种情况...我只知道活动目录上的外部用户会发生这种情况...任何人都可以显示我该如何解决这个问题并获得实际的 firstName、LastName 和 MiddleInitial?
【问题讨论】:
-
你熟悉 PrincipalContext 你也可以得到组用户 我会发一个例子
-
其他工作示例在这里.. stackoverflow.com/questions/5309988/… 做一个简单的谷歌搜索
标签: c# asp.net active-directory ldap