Membership、MembershipUser和Roles类
用户与角色管理在asp.net2.0中是通过Membership和Roles两个类来实现的。
Membership:用户成员账号管理,用户名、密码、邮箱等
Roles:负责用户和群组之间关系管理。
l Membership类:主要是创建用户帐号、验证用户身份和管理用户设置
属性:
1) EnablePasswordReset:获取一个值,以指示是否可以重置密码。
2) EnablePasswordRetrieval:获取一个值,以指示是否允许用户提取密码。
3) HashAlgorithmType:获取一个值,密码的算法识别项
4) MaxInvalidPasswordAttempts:获取一个值,锁定用户之间所允许的重试次数。
5) MinRequiredNonAlphanumericCharacters:获取一个值,密码中最少的特殊字符数。
6) MinRequiredPasswordLength:取得最小密码的长度
7) RequiresQuestionAndAnswer:获取一个值,指示是否要求用户解答密码问题以重新提取密码。
8) UserIsOnlineTimeWindow:指定用户最后活动日期之后的分钟数,其间的用户视为在线。
方法:
1) CreateUser():创建新的用户
2) DeleteUser():从数据库删除用户
3) GetUser():取得成员资格用户的信息
4) UpdateUser():更新用户信息
5) ValidateUser():验证用户账号与密码是否用效
6) GetAllUsers():取得数据库中用户的集合
7) FindUsersByEmail():根据email查询用户
8) FinndUsersByName():根据帐号名称查询用户
9) GetNumberOfUsersOnline():取得目前访问程序的在线用户
10) GetUserNameByEmail():根据邮箱查询用户名
l MembershipUser类
负责管理与更新Membership表中的相关资料。别把MembershipUser类与Membership类混了,实际上是同MembershipUser处理完成后交由Membership处理。如:
1) 取得或设置用户相关信息。如UserName,Email和帐号创建时间。
2) 读取、改变用户密码
3) 改变密码提示问题与答案
4) 解锁帐号
5) 设置是否允许用户能够被验证
属性:
1) CreationDate:取得用户的创建时间
2) Email:取得或设置用户的电子邮件地址
3) IsApproved:取得或设置用户是否可以进行验证
4) IsLockedOut:取出用户是否被锁定
5) IsOnLine:指出用户目前是否在线
6) LastActivityDate:取得或设置用户最后一次验证或访问程序的日期时间
7) LastLoclkoutDate:取是最近锁定用户的日期和时间
8) LastLoginDate:取得或设置用户上一次验证的日期时间
9) LastPasswordChangedDate:取得用户密码上一次更新的时间
10) PasswordQuestion:取得用户的安全密码的问题
11) UserName:取得用户登录的名称
方法:
12) ChangePassword():更改用户密码
13) ChangePasswordQuestionAndAnswer:更改用户的密码安全问题和解答
14) GetPassword():取得用户密码
15) ResetPassword():将用户的密码重置,并自动产生新密码
16) UnlockUser():解除帐号锁定,以便能进行身份验证
l Roles类
方法:
1) AddUsersToRole():将多个用户加入一个角色
2) AddUsersToRoles():将多个用户加入多个角色
3) AddUserToRole():将一个用户加入一个角色
4) AddUserToRoles():将一个用户加入多个角色
5) CreateRole():创建角色
6) DeleteRole():删除角色
7) FindUsersInRole():寻找某个角色中的所有用户
8) GetAllRoles():取得所有角色的清单
9) GetRolesForUser():取得用户所属角色的清单
10) IsUserInRole():指出用户是否在指定的角色中
11) RemoveUserFromRole():从一个角色中移除一个用户
12) RemoveUserFromRoles():从多个角色中移出一个用户
13) RemoveUsersFromRole():从一个角色中移除多个用户
14) RemoveUsersFromRoles():从多个角色中移除多个用户名
15) RoleExists():用户角色名是否已存在于角色表中。
代码实现(1)
创建用户:
MembershipCreateStatus mc;
Membership.CreateUser(txtUid.Text, txtPwd.Text, txtEmail.Text, txtQuestion.Text, txtAnswer.Text, true, out mc);
Response.Write(mc.ToString());
删除用户:
if (Membership.DeleteUser(txtUid.Text))
Response.Write("OK");
else
Response.Write("Error");
修改用户信息:
if (User.Identity.IsAuthenticated)
{
MembershipUser user = Membership.GetUser();
user.Email = txtEmail.Text;
Membership.UpdateUser(user);
Response.Write(user.Email.ToString());
}
验证用户登录信息
bool isok = Membership.ValidateUser(txtUid.Text, txtPwd.Text);
if (isok)
{
FormsAuthentication.SetAuthCookie(txtUid.Text, false);
Response.Write("OK");
}
else
{
Response.Write("Error");
}
获取登录用户的信息
if (User.Identity.IsAuthenticated)
{
MembershipUser myuser = Membership.GetUser();
if (myuser != null)
{
Response.Write(myuser.CreationDate);
Response.Write(myuser.Email);
Response.Write(myuser.IsLockedOut);
Response.Write(myuser.IsOnline);
Response.Write(myuser.PasswordQuestion);
Response.Write(myuser.UserName);
}
}
根据密码问题的答案返回用户密码
if (User.Identity.IsAuthenticated)
{
MembershipUser user = Membership.GetUser(txtUid.Text);
txtPwd.Text = user.GetPassword(txtAnswer.Text);
}
修改用户密码
if (User.Identity.IsAuthenticated)
{
MembershipUser user = Membership.GetUser();
user.ChangePassword(txtPwd.Text,txtPWd2.Text);
Response.Write(user.GetPassword(txtAnswer.Text));
}
解锁用户
MembershipUser user = Membership.GetUser(txtUid.Text);
bool b = user.UnlockUser();
Response.Write(b+" "+user.IsLockedOut);
拒绝用户登录
MembershipUser user = Membership.GetUser(txtUid.Text);
user.IsApproved = false;
Membership.UpdateUser(user);
Response.Write(user.IsLockedOut);
允许用户登录
MembershipUser user = Membership.GetUser(txtUid.Text);
user.IsApproved = true;
Membership.UpdateUser(user);
Response.Write(user.IsLockedOut);
根据用户名或邮箱来检索用户
MembershipUserCollection users;
switch(listType.Text)
{
case "姓名":
users = Membership.FindUsersByName(txtFind.Text);
if (users.Count > 0)
{
showUserInfo(users);
}
else
{
Response.Write("未找到用户名");
}
break;
case "邮箱":
users = Membership.FindUsersByEmail(txtFind.Text);
if (users.Count > 0)
{
showUserInfo(users);
}
else
{
Response.Write("未找到邮箱");
}
break;
}
代码实现(2)
加载所有用户
MembershipUserCollection user = Membership.GetAllUsers();
listUser.DataSource = user;
listUser.DataBind();
加载所有角色
string[] role = Roles.GetAllRoles();
listRole.DataSource = role;
listRole.DataBind();
添加新角色
Roles.CreateRole(txtRole.Text);
删除角色
Roles.DeleteRole(txtRole.Text);
将一个用户添加到一个角色
Roles.AddUserToRole(listUser.Text, listRole.Text);
将一个用户从一个角色中移除
Roles.RemoveUserFromRole(listUser.Text, listRole.Text);
将一个用户加入到多个角色中去
int n = 0;
foreach (ListItem li in listRole.Items)
{
if (li.Selected) n++;
}
string[] roles = new string[n];
int i=0;
foreach(ListItem li in listRole.Items)
{
if(li.Selected)
{
roles[i++] = li.Text;
}
}
Roles.AddUserToRoles(listUser.Text, roles);
将一个用户的所有角色移除
string[] str = Roles.GetRolesForUser(listUser.Text);
Roles.RemoveUserFromRoles(listUser.Text,str);
将多个用户加入到一个角色中去
int n = 0;
foreach (ListItem li in listUser.Items)
{
if (li.Selected) n++;
}
string[] users = new string[n];
int i=0;
foreach (ListItem li in listUser.Items)
{
if (li.Selected)
{
users[i++] = li.Text;
}
}
Roles.AddUsersToRole(users,listRole.Text);
将一个角色中的所有的用户移除
string[] users = Roles.GetUsersInRole(listRole.Text);
Roles.RemoveUsersFromRole(users, listRole.Text);
将多个用户加入到多个角色
int n = 0;
foreach (ListItem li in listUser.Items)
{
if (li.Selected) n++;
}
string[] strUser = new string[n];
n = 0;
foreach (ListItem li in listRole.Items)
{
if (li.Selected) n++;
}
string[] strRoles = new string[n];
for (int i = 0; i < listUser.Items.Count; i++)
{
strUser[i] = listUser.Items[i].Text;
}
for (int i = 0; i < listRole.Items.Count; i++)
{
strRoles[i] = listRole.Items[i].Text;
}
Roles.AddUsersToRoles(strUser, strRoles);
转载于:https://www.cnblogs.com/momochong0/archive/2010/07/19/1780854.html
Membership、MembershipUser和Roles类相关推荐
- (转)Membership、MembershipUser和Roles类 详解
您正在查看 "Membership" 分类下的文章 自助找回密码的PasswordRecovery控件 CreateUserWizard控件(二) CreateUserWizard ...
- 关于Membership 类
一. Membership 类 : 创建和删除用户, 检索用户信 ,生成随机密码 , 登录验证 登录验证: if (Membership.ValidateUser (Us ...
- Membership学习(三)Membership Providers介绍[xgluxv]
本来想在第三篇文章里介绍一下 Membership的类的,不过现在中文msdn也出来了,所以就不写了,,直接到介绍Membership Providers. Membership Pro ...
- 创建和管理角色(Roles)
简介 在< 基于用户的授权 >教程中,我们考察了使用URL 授权来限制某些用户对一组页面的访问,探讨了通过声明和编码方法来根据访问用户调整ASP.NET 页面的功能.不过,这种逐个用户地授 ...
- ASP.NET 2.0 中的新增安全功能
发布日期: 8/26/2004 | 更新日期: 8/26/2004 Stephen Walther Microsoft Corporation 适用于: Microsoft ASP.NET 2.0 M ...
- ASP.NET 2.0角色及成员管理
成员管理 一. Membership 类 : 创建和删除用户, 检索用户信 ,生成随机密码 , 登录验证 创建新用户: try { Membersh ...
- ASP.NET2.0应用中定制安全凭证之理论篇
阅读提要 在缺省状况下,你只能使用Visual Studio 2005的一个本机实例来管理与ASP.NET 2.0一同发行的SQL Server数据库中的安全凭证.本文将向你展示怎样用一个Web服务来 ...
- System.Web.Security
System.Web.Security概述 System.Web.Security命名空间提供了asp.net 2.0中的一些安全措施,如登陆用户的身份验证.当前用户的角色管理等. 要了解System ...
- 2013NET笔试题及答案
.NET概述 一.名词解释 MSIL:Microsoft Intermediate Language(微软中间语言),是一种类似Java字节码的语言,也是为了能在不同平台移植所生成的中间代码. J ...
最新文章
- flutter TextField 输入框被软键盘挡住的解决方案
- python中id3决策树算法_ID3决策树算法实现(Python版)
- 121 项目 023 笔记向 反射
- LightGBM笔记
- 中班机器人歌曲_机器人幼儿园大班音乐教案
- 地图与输出之间的基准面发生冲突_【地图技巧】荒野乱斗: 全球锦标赛全地图英雄推荐...
- eclipse--基本配置
- Struts2 转换器
- html页面div高度相减,关于html:两个div底部div到高度调整与浏览器窗口
- mysql 新建文件夹权限设置_MySQL文件及目录权限设置分析-爱可生
- Unity的Scrollbar
- CODE[VS] 1474 十进制转m进制
- Codeforces Round #558 Div.2 - C2 - Power Transmission (Hard Edition)
- 案例式c语言实验答案,C语言课后实验设计答案
- tp5 对接腾讯云聊天
- Git版本控制管理——基本Git概念
- Android程序设计之音乐播放器实现
- java cs 顺丰运单_JAVA接入顺丰快递
- 当定频神器爱上多线程|ROS2定频话题发布Demo
- 迅优随身WiFi骁龙410-103s版型刷openwrt教程