Ad these files to your admin directory
http://home.mchsi.com/~j.roal/Users.zip
Compile and go.
File: Users.aspx
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" CodeFile="Users.aspx.cs"
Inherits="Users" Title="Manage Users" %>
<asp:Content ID="MainContent" ContentPlaceHolderID="Main" runat="server">
<div id="body">
<div id="col_main_left">
<div id="user_assistance">
<a id="content_start"></a>
<h3>
Actions</h3>
<p>Use this section to change user roles or delete users. Note: deleting users is not reverisible!
They will need to sign up again to become a user again.</p>
<p>
<asp:HyperLink ID="BackToAdminLink" runat="server" NavigateUrl="~/Admin/Default.aspx">back to Administration</asp:HyperLink></p>
</div>
</div>
<div id="col_main_right">
<h2 class="section">
User Administration</h2>
<div class="content_right">
<fieldset>
<asp:Label ID="Label1" runat="server" Font-Bold="True" Text="Select a user from the list"></asp:Label>
<p>
<asp:ListBox ID="ListBox1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ListBox1_SelectedIndexChanged"
Width="80%"></asp:ListBox></p><p>
<asp:Label ID="Label4" runat="server" Font-Bold="True" Text="Name:"></asp:Label>
</p><p>
<asp:Label ID="Label3" runat="server" Font-Bold="True" Text="Email:"></asp:Label>
</p><p>
<asp:Label ID="Label6" runat="server" Text=" "></asp:Label>
</p>
<asp:Label ID="Label2" runat="server" Font-Bold="True" Text="Roles :"></asp:Label>
<asp:CheckBoxList ID="CheckBoxList1" runat="server" AutoPostBack="True"></asp:CheckBoxList>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Update Roles" />
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Delete User" />
<asp:Button ID="Button3" runat="server" OnClick="Button3_Click" Text="Unlock User" />
<asp:Button ID="Button4" runat="server" OnClick="Button4_Click" Text="Approve User" />
</fieldset>
</div>
</div>
</div>
</asp:Content>
File: Users.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Users : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
MembershipUserCollection users = Membership.GetAllUsers();
foreach (MembershipUser user in users)
{
ListBox1.Items.Add(user.UserName);
}
string[] allRoles = Roles.GetAllRoles();
foreach (string role in allRoles)
{
CheckBoxList1.Items.Add(role);
}
Button1.Enabled = false;
Button2.Enabled = false;
Button3.Enabled = false;
Button4.Enabled = false;
Label3.Visible = false;
Label4.Visible = false;
// Bind users to ListBox.
ListBox1.DataSource = users;
ListBox1.DataBind();
}
}
protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//Clean up the list box first
string[] allRoles = Roles.GetAllRoles();
foreach (string role in allRoles)
{
ListItem li = CheckBoxList1.Items.FindByValue(role);
li.Selected = false;
}
//now add the right checks
string[] userRoles = Roles.GetRolesForUser(ListBox1.SelectedValue);
foreach (string role in userRoles)
{
ListItem li = CheckBoxList1.Items.FindByValue(role);
if (li != null)
{
li.Selected = true;
}
Button1.Enabled = true;
Button2.Enabled = true;
Label3.Visible = true;
Label4.Visible = true;
MembershipUser userselected = Membership.GetUser(ListBox1.SelectedValue);
Label4.Text = "Name: " + Profile.GetProfile(ListBox1.SelectedValue).FirstName + " " + Profile.GetProfile(ListBox1.SelectedValue).LastName;
Label3.Text = "Email: " + userselected.Email;
if (userselected.IsLockedOut)
{
Button3.Enabled = true;
}
else
{
Button3.Enabled = false;
}
if (userselected.IsApproved)
{
Button4.Enabled = true;
Button4.Text = "Disapprove User";
}
else
{
Button4.Enabled = true;
Button4.Text = "Approve User";
}
if (userselected.IsOnline)
{
// Label6.Text = "Online Now"; Not working at the moment
}
else
{
// Label6.Text = "Offline";
}
// Label6.Text = Convert.ToString(userselected.LastActivityDate);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
foreach (ListItem li in CheckBoxList1.Items)
{
if (li.Selected == true)
{
if (Roles.IsUserInRole(ListBox1.SelectedValue, li.Value) == false)
{
Roles.AddUserToRole(ListBox1.SelectedValue, li.Value);
}
}
else
{
if (Roles.IsUserInRole(ListBox1.SelectedValue, li.Value))
{
Roles.RemoveUserFromRole(ListBox1.SelectedValue, li.Value);
}
}
}
}
protected void Button2_Click(object sender, EventArgs e)
{
Membership.DeleteUser(ListBox1.SelectedValue);
// clear the list box
ListBox1.Items.Clear();
// relocad the list box
MembershipUserCollection users = Membership.GetAllUsers();
foreach (MembershipUser user in users)
{
ListBox1.Items.Add(user.UserName);
}
}
protected void Button3_Click(object sender, EventArgs e)
{
MembershipUser userselected = Membership.GetUser(ListBox1.SelectedValue);
if (userselected.UnlockUser())
{
Button3.Enabled = false;
}
}
protected void Button4_Click(object sender, EventArgs e)
{
MembershipUser userselected = Membership.GetUser(ListBox1.SelectedValue);
if (userselected.IsApproved)
{
userselected.IsApproved = false;
Button4.Text = "Approve User";
}
else
{
userselected.IsApproved = true;
Button4.Text = "Disapprove User";
}
Membership.UpdateUser(userselected);
}
}
Also add the link in your admin default file:
# Total Members:
<asp:Label Text='<%# Eval("TotalUsers") %>' runat="server" ID="TotalUsersLabel" CssClass="stat">
</asp:Label><br />
# New Registrations in last 7 days:
<asp:Label Text='<%# Eval("NewUsers") %>' runat="server" ID="NewUsersLabel" CssClass="stat">
</asp:Label><br />
<strong><a href="Users.aspx">Manage Members</a></strong><br />
<br />
<br />