簡體   English   中英

在sharepoint中按組獲取用戶

[英]get users by group in sharepoint

任何人都可以告訴我如何使用sharepoint獲取特定組內的用戶?

所以我有一個包含用戶和/或組的列表。 我想檢索該列表中的所有用戶。 有沒有辦法區分列表項是組還是用戶。 如果它是一個組,我需要獲得該組內的所有用戶。

即時通訊使用c#,我試圖通過使它成為一個控制台應用程序來做。

我是sharepoint的新手,我真的在這里跳進了游泳池的深處,任何幫助都將受到高度贊賞。

干杯..

您需要知道的第一件事是,當您有一個包含用戶/組字段的列表時,您必須知道它的類型。 如果項目值中包含一個用戶或組,則字段類型為SPFieldUserValue。 但是,如果該字段具有多個用戶/組選擇,則字段類型為SPFieldUserValueCollection。
我假設您的字段允許單個用戶/組選擇,並且您已經擁有以下對象:

SPSite site;
SPWeb web;
SPListItem item;

現在,我們將檢查用戶/組的字段值並檢索用戶列表,與其類型無關(字段的名稱為“Users” )。

SPFieldUserValue usersField = new SPFieldUserValue(mainWeb, item["Users"].ToString());
bool isUser = SPUtility.IsLoginValid(site, usersField.User.LoginName);
List<SPUser> users = new List<SPUser>();

if (isUser)
{
    // add a single user to the list
    users.Add(usersField.User);
}
else
{
    SPGroup group = web.Groups.GetByID(usersField.LookupId);

    foreach (SPUser user in group.Users)
    {
        // add all the group users to the list
        users.Add(user.User);
    }
}

我希望它對你有所幫助。

韓國社交協會,
PedroJoséBatista

注意:SPUser對象也可以是AD組(也就是說,“DOMAIN \\ Domain Users”可能存在SPUser對象...這就是SPUser對象還包含屬性IsDomainGroup的原因。

從這些信息中,您可以使用SPPrincipalInfo對象開始遍歷AD組...但是它並不總是令人愉快。

值得注意的一件事是,SPGroup對象包含可以遍歷AD組的ContainsCurrentUser屬性......但是,假設您有一個可以使用的SPGroup對象。

請享用。
斯科特

最好使用web.SiteGroups而不是web.Groups作為一個組可能會被該站點繼承。

private bool IsMember()
    {
        bool isMember;
        SPSite site = new SPSite(SiteURL);
        SPWeb web = site.OpenWeb();
        isMember = web.IsCurrentUserMemberOfGroup(web.Groups["GroupName"].ID);
        web.Close();
        site.Close();
        return isMember;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM