get users by group in sharepoint

前端 未结 4 662
猫巷女王i
猫巷女王i 2021-02-08 12:15

can anyone show me how to get the users within a certain group using sharepoint?

so i have a list that contains users and or groups. i want to retrieve all users in that

4条回答
  •  北恋
    北恋 (楼主)
    2021-02-08 12:38

    The first thing you need to know is that when you have a list with a User / Group field you must be aware of its type. When you have one user or group within the item value, the field type is SPFieldUserValue. However, if the field has multiple user / group selection the field type is SPFieldUserValueCollection.
    I'll assume that your field allows a single user / group selection and you already has the following objects:

    SPSite site;
    SPWeb web;
    SPListItem item;
    

    Now, we'll check the field value for a user / group and retrieve a list of users, independant of which kind it is (the field's name is "Users").

    SPFieldUserValue usersField = new SPFieldUserValue(mainWeb, item["Users"].ToString());
    bool isUser = SPUtility.IsLoginValid(site, usersField.User.LoginName);
    List users = new List();
    
    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);
        }
    }
    

    I hope it helps you.

    Tks,
    Pedro José Batista

提交回复
热议问题