Asp.net用户管理API的应用(下)
4、注销用户
1FormsAuthentication.SignOut();//注销用户
2Roles.DeleteCookie();//清除cookie
3FormsAuthentication.RedirectToLoginPage();//注销后转回到登陆页
4
2Roles.DeleteCookie();//清除cookie
3FormsAuthentication.RedirectToLoginPage();//注销后转回到登陆页
4
5、删除用户
1string username =”用户名”;
2Membership.DeleteUser(username);
3FormsAuthentication.RedirectToLoginPage();//注销后转回到登陆页
4
2Membership.DeleteUser(username);
3FormsAuthentication.RedirectToLoginPage();//注销后转回到登陆页
4
6、修改用户信息
1MembershipUser MU = Membership.GetUser ();
2MU.Email = "axzxs2002@163.com";
3Membership.UpdateUser(MU);
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
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
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
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();
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 }
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
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
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
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
2 <system.web>
3 <authorization >
4 <allow users="?" />
5 </authorization>
6 </system.web>
7 </location>
8
这段是配置了所有用户和角色都是可以访问register.aspx页面的。
****欢迎关注我的asp.net core系统课程****
《asp.net core精要讲解》 https://ke.qq.com/course/265696
《asp.net core 3.0》 https://ke.qq.com/course/437517
《asp.net core项目实战》 https://ke.qq.com/course/291868
《基于.net core微服务》 https://ke.qq.com/course/299524
《asp.net core精要讲解》 https://ke.qq.com/course/265696
《asp.net core 3.0》 https://ke.qq.com/course/437517
《asp.net core项目实战》 https://ke.qq.com/course/291868
《基于.net core微服务》 https://ke.qq.com/course/299524