SharePoint 2010 - Groups and Users

In this article we explore the Server Object Model for dealing with Groups and Users inside SharePoint.

Our Intent

We intend to create a webpart that displays the users & groups in the SharePoint site.

For example:

Group 1

  • User 1
  • User 2

Group 2

  • User 3
  • User 4

The Solution

Create a new SharePoint solution and add a new webpart into it. Place a literal control over it, as in:

ShrGrp1.jpg

In the Page Load event add the following code:

protected void Page_Load(object sender, EventArgs e)

{

    if (!this.Page.IsPostBack)

        RefreshData();

}

 

private void RefreshData()

{

    StringBuilder sb = new StringBuilder("<h2>Groups & Users</h2></br>");

 

    foreach (SPGroup group in SPContext.Current.Web.Groups)

    {

        sb.Append("<b>Group: </b>" + group.Name + "</br>");

        foreach (SPUser user in group.Users)

        {

            sb.Append(user.Name + "</br>");
        }
 
        sb.Append(
"</br>");
    }
 
    Literal1.Text = sb.ToString();
}

What does the code do?

SPContext.Current.Web.Groups returns all the groups for the particular web object. We can enumerate this using a foreach statement.

Group.Users returns the users inside the particular group. The object is represented by the SPUser object model.

Running the Code

On running the project, adding the web part to the page, you will see the following results:

ShrGrp2.jpg

More Information on Groups & Users

I would like to add some related information from MSDN.

SPWeb.AllUsers

Gets the collection of user objects that represents all users who are either members of the site or who have browsed to the site as authenticated members of a domain group in the site.

SPWeb.Users

Gets the collection of user objects that are explicitly assigned permissions in the Web site.

References

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spuser.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spuser.groups.aspx

Summary

In this article we have explored the server object model for fetching groups & users. The web part displaying groups & users is attached with the article.