⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 removeusersfromrole.aspx.cs

📁 《圣殿祭司的ASP.NET 2.0开发详解——使用C#》光盘内容.包含了书籍所含的源代码.非常经典的一本asp.net2.0的书籍
💻 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 RemoveUsersFromRole : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
		if (!IsPostBack)
		{
			LoadUsersRoles();  //载入用户与角色
			ShowUsersRoles();  //在GridView中显示用户与群组关系
		}
    }

	//载入用户与角色到CheckBoxList或RadioButtonList中
	private void LoadUsersRoles()
	{
		cbxlUsers.DataSource = Membership.GetAllUsers();
		cbxlUsers.DataBind();

		rdoRoles.DataSource = Roles.GetAllRoles();
		rdoRoles.DataBind();
	}

	//将用户自角色中移除
	protected void btnRemoveUsersRole_Click(object sender, EventArgs e)
	{
		//计算多少用户被打勾,建立数组大小
		int UsersCount = CountCheckBoxList(cbxlUsers);
		string[] UsersArray = new string[UsersCount];
		//取得哪些用户被打勾,将其加入字符串数组之中
		AddArray(UsersArray,cbxlUsers);

		try
		{
			//将多个Users自一个Roles中移除
			Roles.RemoveUsersFromRole(UsersArray, rdoRoles.SelectedItem.Text);
			ShowUsersRoles();
			new AlertMessage().showMsg(this.Page, "移除用户的角色成功!");

		}
		catch(Exception ex)
		{
			txtMsg.Text = ex.Message.ToString();
		}
		finally
		{
			//清除数组
			System.Array.Clear(UsersArray, 0, UsersCount - 1);
		}
	}

	//计算CheckBoxList有几个项目被勾选
	private int CountCheckBoxList(CheckBoxList cbxlist)
	{
		int Count = 0;
		for (int i = 0; i <= cbxlist.Items.Count - 1; i++)
		{
			if (cbxlist.Items[i].Selected == true)
			{
				Count++;
			}
		}

		return Count;
	}

	//取得哪些用户被打勾,将其加入字符串数组之中
	private void AddArray(string[] UserRoleArray, CheckBoxList cbxlist)
	{
		int x = 0;
		for (int i = 0; i <= cbxlist.Items.Count - 1; i++)
		{
			//如果CheckBoxList项目被勾选择将其加入数组
			if (cbxlist.Items[i].Selected == true)
			{
				UserRoleArray[x] = cbxlist.Items[i].Text;
				x++;
			}
		}
	}

	//在GridView中显示用户与群组关系
	private void ShowUsersRoles()
	{
		//声明一个DataTable以容纳User及Roles
		//并作为GridView的DataSource
		DataTable dtUsersRoles = new DataTable();
		dtUsersRoles.Columns.Add("Users",typeof(string));
		dtUsersRoles.Columns.Add("Roles", typeof(string));

		string[] RolesArray;
		//取得用户的集合
		MembershipUserCollection User = Membership.GetAllUsers();
		//将用户一一取出,并读出该用户所属群组
		foreach (MembershipUser singleUser in User)
		{
			//取得用户所属群组
			RolesArray = Roles.GetRolesForUser(singleUser.UserName);
			if (RolesArray.Length >= 1)
			{
				for (int i = 0; i<=RolesArray.Length - 1; i++)
				{
					DataRow singleRow = dtUsersRoles.NewRow();
					singleRow["Users"] = singleUser.UserName;
					singleRow["Roles"] = RolesArray[i];
					dtUsersRoles.Rows.Add(singleRow);
				}
			}
		}
		
		gviewUsersRoles.DataSource = dtUsersRoles;
		gviewUsersRoles.DataBind();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -