2013-03-15 112 views
1

我的第一個項目是爲我們的Active Directory創建一個Web工具。我需要做的一件事就是獲取並顯示在Active Directory中的用戶帳戶的「MemberOf」選項卡中顯示的組,並將其傳遞給gridview。我做了一些家庭工作,這裏是我的。如何獲取Active Directory中「成員」選項卡中的組

我有一個文本框(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; 
} 

我還是不能讓「成員」的選項卡里面的羣體。

回答

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作爲用戶是間接成員的組)。

+0

嗨marc_s 感謝您的專業意見。我嘗試了你的建議...但是,我仍然無法獲得成員標籤中的組。 Vice Versa,我能夠得到一個OU的成員。我的目標是獲得用戶所屬的會員資格。我試圖搜索我的帳戶,這是8-10組的成員。但是他們沒有出現在我的查詢中。有什麼我忽視或濫用(可能有)? 感謝您的回覆!非常感謝! – Joel 2013-03-16 02:19:52

相關問題