zoukankan      html  css  js  c++  java
  • 视频教程:小型登陆系统(六)

    管理员给用户分配角色

      查看更多精彩图片

    v   这里是分配用户角色左边是可分配的角色,右边是用户已有的角色。

    v   通过按钮可将选择角色项在两个框中添加与移除,也可全部添加与移除,点击“确定”完成分配,点击“返回”回到用户列表

    v   管理员不能被去掉管理员角色。

    分配角色代码

    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;

    namespace RegeditOfAdoDotnet
    {
        public partial class AdminAllocateRole : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                string userName = Request.QueryString["user"].ToString();
                lblUserName.Text = userName;
                Response.Buffer = true;
                Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
                Response.Expires = 0;
                Response.CacheControl = "no-cache";
                Response.AddHeader("Pragma", "No-Cache");
                if (!IsPostBack)
                {
                    RolesBind();//提取的RolesBind方法
                }
            }

            /// <summary>
            /// 分离出已有角色和可分角色
            /// </summary>
            private void RolesBind()
            {
                //获取AdminInfo.aspx 页面传递过来的用户名
                string userName = Request.QueryString["user"].ToString();
                lblUserName.Text = userName;
                MembershipUser user = Membership.GetUser(lblUserName.Text);//获取当前用户信息
                String[] roles = Roles.GetRolesForUser(userName);
                //获取当前用户的角色
                lbxHadRole.DataSource = roles;
                lbxHadRole.DataBind();
                string[] a = Roles.GetAllRoles();//获取所有用户角色
                string[] b = Roles.GetRolesForUser(userName);//获取可分角色
                string[] c = new string[a.Length - b.Length];//已有角色
                int k = 0;
                for (int i = 0; i < b.Length; i++)
                {
                    for (int j = 0; j < a.Length; j++)
                    {
                        if (a[j] == b[i])
                            a.SetValue("", j);
                    }
                }
                for (int i = 0; i < a.Length; i++)
                {
                    if (a[i] != "")
                    {
                        c[k] = a[i];
                        k++;
                    }
                }
                //获取可分角色列表
                lbxDivRole.DataSource = c;
                lbxDivRole.DataBind();
            }

            /// <summary>
            ///返回
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            protected void btnBack_Click(object sender, EventArgs e)
            {
                Response.Redirect("~/Admin/AdminInfo.aspx");
            }

            /// <summary>
            /// 单个选中可分角色
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            protected void btnInsRole_Click(object sender, EventArgs e)
            {
               
                try
                {
                    if (lbxDivRole.GetSelectedIndices().Length > 0)
                    {
                        lbxHadRole.Items.Add(lbxDivRole.SelectedItem);
                        lbxDivRole.Items.Remove(lbxDivRole.SelectedItem);
                    }
                }
                catch (Exception exp)
                {
                    //捕获异常
                    Response.Write(exp.Message);
                }
            }

            /// <summary>
            /// 全部选中可分角色
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            protected void btnInsAllRole_Click(object sender, EventArgs e)
            {
                try
                {
                    if (lbxDivRole.GetSelectedIndices().Length > 0)
                    {
                        ArrayList arrayItems = new ArrayList();
                        foreach (ListItem item in this.lbxDivRole.Items)
                        {
                            arrayItems.Add(item);
                        }
                        foreach (ListItem item in arrayItems)
                        {
                            this.lbxHadRole.Items.Add(item);
                            this.lbxDivRole.Items.Remove(item);
                        }
                    }
                }
                catch (Exception exp)
                {
                    //捕获异常
                    Response.Write(exp.Message);
                }
            }

            /// <summary>
            /// 单个选中已有角色
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            protected void btnDelRole_Click(object sender, EventArgs e)
            {
                try
                {
                    if (lbxHadRole.GetSelectedIndices().Length > 0)
                    {
                        if (lbxHadRole.SelectedItem.Value != "Admin")
                        {
                            lbxDivRole.Items.Add(lbxHadRole.SelectedItem);
                            lbxHadRole.Items.Remove(lbxHadRole.SelectedItem);
                        }
                        else
                        {
                            ClientScript.RegisterStartupScript(this.GetType(), "myscript", "<script>alert('管理员不能被去掉管理员角色!');</script>");
                        }
                    }
                }
                catch (Exception exp)
                {
                    //捕获异常
                    Response.Write(exp.Message);
                }

            }

            /// <summary>
            /// 全部选中已有角色
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            protected void btnDelAllRole_Click(object sender, EventArgs e)
            {
                try
                {
                    if (lbxHadRole.GetSelectedIndices().Length > 0)
                    {
                        ArrayList arrayItems = new ArrayList();
                        foreach (ListItem item in this.lbxHadRole.Items)
                        {
                            if (item.ToString() != "Admin")
                            {
                                arrayItems.Add(item);
                            }
                            else
                            {
                                ClientScript.RegisterStartupScript(this.GetType(), "myscript", "<script>alert('管理员不能被去掉管理员角色!');</script>");
                            }
                        }
                        foreach (ListItem item in arrayItems)
                        {
                            this.lbxDivRole.Items.Add(item);
                            this.lbxHadRole.Items.Remove(item);
                        }
                    }
                }
                catch (Exception exp)
                {
                    //捕获异常
                    Response.Write(exp.Message);
                }
            }

            /// <summary>
            /// 确定
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            protected void btnCofirm_Click(object sender, EventArgs e)
            {
                try
                {
                    lbxHadRole.ClearSelection();
                    lbxDivRole.ClearSelection();
                    string userName = lblUserName.Text.ToString();
                    String[] userInRoles = Roles.GetRolesForUser(userName);
                    if (userInRoles.Length > 0)
                    {
                        Roles.RemoveUserFromRoles(userName, userInRoles);
                    }
                    ArrayList arrayItems = new ArrayList();
                    foreach (ListItem item in this.lbxHadRole.Items)
                    {
                        Roles.AddUserToRole(userName, item.ToString());
                    }
                }
                catch (Exception exp)
                {
                    //捕获异常
                    Response.Write(exp.Message);
                }
                finally
                {
                    ClientScript.RegisterStartupScript(this.GetType(), "myscript", "<script>alert('分配角色成功!');</script>");
                }
            }
        }
    }

  • 相关阅读:
    自定义组件要加@click方法
    绑定样式
    647. Palindromic Substrings
    215. Kth Largest Element in an Array
    448. Find All Numbers Disappeared in an Array
    287. Find the Duplicate Number
    283. Move Zeroes
    234. Palindrome Linked List
    202. Happy Number
    217. Contains Duplicate
  • 原文地址:https://www.cnblogs.com/Gemgin/p/3136377.html
Copyright © 2011-2022 走看看