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
Group 2
The Solution
Create a new SharePoint solution and add a new webpart into it. Place a literal control over it, as in:
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:
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.