zoukankan      html  css  js  c++  java
  • Asp.net用户管理API的应用(下)

    4、注销用户

     

    1FormsAuthentication.SignOut();//注销用户
    2Roles.DeleteCookie();//清除cookie
    3FormsAuthentication.RedirectToLoginPage();//注销后转回到登陆页
    4

     

    5、删除用户

     

    1string username =”用户名”; 
    2Membership.DeleteUser(username);
    3FormsAuthentication.RedirectToLoginPage();//注销后转回到登陆页
    4

     

    6、修改用户信息

     

    1MembershipUser MU = Membership.GetUser (); 
    2MU.Email = "axzxs2002@163.com";       
    3Membership.UpdateUser(MU);

     

    7、修改密码

     

     1if (Membership.GetUser().ChangePassword(OldTextBox.Text, newTextBox.Text))
     2{
     3
     4            Response.Write("更改用户密码成功!");
     5}

     6 else
     7{
     8            Response.Write("更改用户密码失败!");
     9 }

    10
    11

     

    8、修改密码问题

     

    1if (Membership.GetUser().ChangePasswordQuestionAndAnswer(PassWordTB.Text, this.OldQuesTB.Text, NewQuesTB.Text))
    2{
    3   Response.Write("更改提问问题成功!");
    4}

    5else
    6 {
    7   Response.Write("更改提问问题失败!");
    8}

    9

     

    9、获取所有用户信息

     

     1  Response.Write("当前用户:" + Page.User.Identity.Name + "<br >");           
     2            DataTable DT=new DataTable ();
     3            DT.Columns.Add("用户名 "typeof(string)); 
     4            DT.Columns.Add("创建时间",typeof(string));
     5            DT.Columns.Add("Email"typeof(string));
     6            DT.Columns.Add("是否在线"typeof(string));
     7            DT.Columns.Add("问题"typeof(string));
     8            DT.Columns.Add("角色",typeof(string));          
     9            foreach (MembershipUser MU in Membership.GetAllUsers())
    10            {
    11                string js = "";
    12                string[] jsArr = Roles.GetRolesForUser(MU.UserName);
    13                foreach (string jss in jsArr)
    14                {
    15                    js += jss +"  ";
    16                }

    17                DT.Rows.Add(MU.UserName, MU.CreationDate, MU.Email, MU.IsOnline, MU.PasswordQuestion, js);
    18            }
             
    19            GridView1.DataSource = DT;
    20            GridView1.DataBind();
    21

    10、获取所有角色

    1 string[] roseArr= Roles.GetAllRoles();
    2 GridView2.DataSource = roseArr;
    3 GridView2.DataBind();

     

    11、创建角色

    1        try
    2        {
    3            Roles.CreateRole(RoseTextBox.Text);
    4        }

    5        catch (Exception me)
    6        {
    7            Response.Write(me.Message);
    8        }

    12、给用户分配角色

     

    1        try
    2        {
    3            Roles.AddUserToRole(usernameTB.Text ,RolseTB.Text);
    4        }

    5        catch (Exception me)
    6        {
    7            Response.Write(me.Message);
    8        }

    9

     

    13、获取角色下的用户

    把角色对应的用户加载到树形菜单中

     

     1TreeView1.Nodes.Clear(); 
     2string[] rolesArr= Roles.GetAllRoles();
     3foreach (string ro in rolesArr)
     4       {
     5           TreeNode TN = new TreeNode(ro);
     6           TreeView1.Nodes.Add(TN); 
     7       }

     8for (int i=0;i<TreeView1.Nodes.Count ;i++)
     9       {
    10         string[] yh=   Roles.GetUsersInRole (TreeView1.Nodes[i].Text );
    11         foreach (string s in yh)
    12         {
    13             TreeNode TTN = new TreeNode(s);
    14             TreeView1.Nodes[i].ChildNodes.Add(TTN);
    15         }

    16       }

    17

     

    现在有了用户和角色,用户和角色也能关联上了,但权限怎么办呢?角色对应的权限怎么来实现呢?权限的设置要在web.config中的验证段落来配置。比如下面的设置,是设置了只有收银员这个角色才能进入系统,其他用户都是不可以的。

     

    1<authentication mode="Forms">  
    2    </authentication>
    3    <authorization >
    4      <allow roles="收银员" />
    5      <deny users="*" />
    6</authorization>
    7

     

    在权限这块,常出现的问题是一种角色,对应着一种访问权限,即一种角色具有相同的访问某些页面,这个怎么实现呢?这里可以通过配置相应的验证来实现,比如下页的实例:

     

    1 <location path="register.aspx" allowOverride="true" >
    2    <system.web>
    3      <authorization >
    4        <allow users="?" />
    5      </authorization>
    6    </system.web> 
    7 </location>
    8

     

    这段是配置了所有用户和角色都是可以访问register.aspx页面的。

  • 相关阅读:
    刨析js代码执行机制
    H5离线缓存基础系列
    meta 详解
    如何成长为一名合格的web架构师?
    整理的互联网公司面试趋势
    http协议
    前端现在到底需要什么样的人才
    webpack 4.0 版本的简单使用
    vue的懒加载如何实现?
    Runtime的几个小例子(含Demo)
  • 原文地址:https://www.cnblogs.com/axzxs2001/p/1246797.html
Copyright © 2011-2022 走看看