1

私の最初のプロジェクトは、Active Directory 用の Web ツールを作成することです。私がしなければならないことの 1 つは、Active Directory のユーザー アカウントの [MemberOf] タブに表示されるグループを取得して表示し、それをグリッドビューに渡すことです。私はいくつかの在宅ワークを行いました。これが私が持っているものです。

テキストボックス(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」のタブ内のグループをまだ取得できません。

4

1 に答える 1

0

.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

于 2013-03-15T10:04:27.000 に答える