【问题标题】:How to get the groups in the "Member of" tab in Active Directory如何在 Active Directory 的“成员”选项卡中获取组
【发布时间】:2013-03-15 18:04:27
【问题描述】:

我的第一个项目是为我们的 Active Directory 创建一个网络工具。我需要做的一件事是获取并显示显示在 Active Directory 中用户帐户的“MemberOf”选项卡中的组,并将其传递给 gridview。我已经完成了一些家庭作业,这就是我所拥有的。

我有一个文本框(txtusername),它旁边是一个按钮(“搜索此用户的组”)。

这是我的代码:

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;
}

我仍然无法获取“MemberOf”选项卡中的组。

【问题讨论】:

    标签: c# asp.net active-directory


    【解决方案1】:

    尝试使用.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 作为用户所属的组 - 间接)。

    【讨论】:

    • 嗨 marc_s 感谢您的专业建议。我尝试了您的建议...但是,我仍然无法在 memberof 选项卡中获取组。反之亦然,我能够获得 OU 的成员。我的目标是获得用户所属的会员资格。我尝试搜索我的帐户,该帐户是 8-10 个组的成员。但他们都没有出现在我的查询中。有什么我忽略或误用的(可能有)吗?谢谢回复!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    相关资源
    最近更新 更多