Fork me on GitHub

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页面的。

posted @ 2008-07-19 21:18  桂素伟  阅读(1124)  评论(1编辑  收藏  举报