All Users in SharePoint Site Custom Webpart

All Users in SharePoint Site Custom Webpart

Price (USD): 0.0

Category: For e.g. WebPart, Workflow, Event Receiver etc.

This webpart will display all the users from each group in the current site. You can however add a foreach loop for each web (or site) in the site collection to get all the users in a site collection.

Our Clients is my Site name, so the groups are named as “Our Clients Visitors”, “Our Clients Members” and “Our Clients Owners”.

Steps :

1. Create a new webpart project (Side Note : I am using VseWss webpart template)

2. Add the below code in Webpart.cs file. Dont forget to rename all the webpart files before you deploy.

Code :

using System;

using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;
using System.Web.UI.WebControls;
using Microsoft.SharePoint;
using System.Collections;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;

namespace AllUsersWebPart
{
[Guid("bb4dddf0-9923-43b9-a835-210735416ddf")]
public class AllUsers : System.Web.UI.WebControls.WebParts.WebPart
{
Label lblName;
Label lblgroups;
Table tblAllUsers;

public AllUsers()
{}

protected override void CreateChildControls()
{
base.CreateChildControls();

tblAllUsers = new Table();
lblgroups = new Label();
lblName = new Label();

CreateHeaderRow(); // Will Add a header Row to the Table.

using (SPSite SPSite = new SPSite(SPContext.Current.Site.ID))
{
using (SPWeb SPWeb = SPSite.OpenWeb(SPContext.Current.Web.ID))
{

SPUserCollection AllSPWebUsers = SPContext.Current.Web.AllUsers;

SPGroupCollection AllSPWebGroups = SPContext.Current.Web.Groups;

//Iterate through each group in the current site.

foreach (SPGroup grp in AllSPWebGroups)
{
SPUserCollection UsersInGroup = grp.Users;

foreach (SPUser user in UsersInGroup)
{
lblName.Text = user.Name;

foreach (SPGroup usergrp in user.Groups)
{
lblgroups.Text = usergrp.Name;
}

AddToTable(lblName.Text, lblgroups.Text);
}
}}}

this.Controls.Add(tblAllUsers);
}
// Adding users to the Output Table.
protected void AddToTable(string UserName, string grp)
{
TableRow r = new TableRow();

TableCell CellName = new TableCell();
CellName.Text = UserName;
r.Cells.Add(CellName);

TableCell CellPermissions = new TableCell();
CellPermissions.Text = grp;
r.Cells.Add(CellPermissions);

tblAllUsers.Rows.Add(r);
}

// Create a Header Row for the Output table.
protected void CreateHeaderRow()
{

TableHeaderRow headerRow = new TableHeaderRow();
headerRow.BackColor = System.Drawing.Color.LightBlue;

TableHeaderCell headerTableCell1 = new TableHeaderCell();
TableHeaderCell headerTableCell2 = new TableHeaderCell();
headerTableCell1.Text = “User Name”;
headerTableCell1.Scope = TableHeaderScope.Column;

headerTableCell2.Text = “Group”;
headerTableCell2.Scope = TableHeaderScope.Column;

headerRow.Cells.Add(headerTableCell1);
headerRow.Cells.Add(headerTableCell2);

tblAllUsers.Rows.AddAt(0, headerRow);
}
}}

See the attached Screenshot

AllUsersWebPart.jpg (8 KB)

你可能感兴趣的:(SharePoint)