如何在活动目录中的“成员”选项卡中获取组
本文关键字:成员 选项 获取 活动 | 更新日期: 2023-09-27 18:04:16
我的第一个项目是为我们的Active Directory创建一个Web工具。我需要做的一件事是获取并显示 Active Directory 中用户帐户的"成员"选项卡中显示的组,并将其传递给网格视图。我已经做了一些功课,这是我所拥有的。
我有一个文本框(txt用户名(,旁边是一个按钮("此用户的搜索组"(。
这是我的代码:
protected void btnsearch_Click(object sender, EventArgs e)
{
ADMAM.GetUserGroups(txtusername.Text, Session["WindowsID"].ToString(), Session["Password"].ToString());
}
public DataTable GetUserGroups(string sUserName, string windowsid, string password)
{
DataTable dt = new DataTable();
UserPrincipal oUserPrincipal = GetUser(sUserName, windowsid, password);
PrincipalSearchResult<Principal> oPrincipalSearchResult = oUserPrincipal.GetGroups();
foreach (Principal oResult in oPrincipalSearchResult)
{
dt.Rows.Add(oResult.Name);
dt.AcceptChanges();
}
return dt;
}
我仍然无法在"成员"选项卡中获取组。
尝试使用 .GetAuthorizationGroups
调用:
PrincipalSearchResult<Principal> oPrincipalSearchResult = oUserPrincipal.GetAuthorizationGroups();
foreach (Principal oResult in oPrincipalSearchResult)
{
dt.Rows.Add(oResult.Name);
dt.AcceptChanges();
}
这还有一个额外的好处,它将递归搜索用户的组成员身份(如果用户是Group A
的成员,而又是Group B
的成员,那么.GetAuthorizationGroups()
也将Group B
作为用户所属的组返回 - 间接(。