1.成员资格管理
1.1ASP.NET成员资格支持下列功能:
1.2成员资源管理模型
ASP.NET提供的成员资格管理功能,其核心是利用内置的成员库表(SQL Server)、成员资格管理API(Membership、MembershipUser等)、成员资格提供程序(SqlMembershipProvider等),实现模块化和自动化的成员资格管理模式。
1.2.1 Membership类用于验证用户凭据并管理用户设置,具有以下几个主要功能:
1.2.2 Membership类常用属性
属性 | 描述 |
ApplicationName | 获取或设置应用程序的名称。 |
EnablePasswordReset | 获得一个值,指示当前成员资格提供程序是否配置为允许用户重置其密码。 |
EnablePasswordRetrieval | 获得一个值,指示当前成员资格提供程序是否配置为允许用户检索其密码。 |
MaxInvalidPasswordAttempts | 获取锁定成员资格用户允许的无效密码或无效密码提示问题答案尝试次数。 |
MinRequiredNonAlphanumericCharacters | 获取有效密码中必须包含的最少特殊字符数。 |
MinRequiredPasswordLength | 获取密码所要求的最小长度。 |
PasswordAttemptWindow | 获取在锁定成员资格用户之前允许的最大无效密码或无效密码提示问题答案尝试次数的分钟数。 |
PasswordStrengthRegularExpression | 获取用于计算密码的正则表达式。 |
RequiresQuestionAndAnswer | 获取一个值,该值指示默认成员资格提供程序是否要求用户在进行密码重置和检索时回答密码提示问题。 |
UserIsOnlineTimeWindow | 指定用户在最近一次活动的日期/时间戳之后被视为联机的分钟数。 |
1.2.3 Membership类常用方法
方法 | 描述 |
CreateUser | 已重载。将新用户添加到数据存储区。 |
DeleteUser | 已重载。从数据库中删除一个用户。 |
FindUsersByEmail | 已重载。获取一个成员资格用户的集合,这些用户的电子邮件地址包含要匹配的指定电子邮件地址。 |
FindUsersByName | 已重载。获取一个成员资格用户的集合,这些用户的用户名包含要匹配的指定用户名。 |
GeneratePassword | 生成指定长度的随机密码。 |
GetAllUsers | 已重载。获取数据库中用户的集合。 |
GetNumberOfUsersOnline | 获取当前访问应用程序的用户数。 |
GetType | 获取当前实例的Type。(从Object 继承。) |
GetUser | 已重载。从数据源获取成员资格用户的信息。 |
GetUserNameByEmail | 获取一个用户名,其中该用户的电子邮件地址与指定的电子邮件地址匹配。 |
ReferenceEquals | 确定指定的Object 实例是否是相同的实例。(从Object 继承。) |
UpdateUser | 用指定用户的信息更新数据库。 |
ValidateUser | 验证提供的用户名和密码是有效的。 |
1.3配置成员资格支持
1.4 使用成员资格支持
在“项目(p)”中打开asp.net配置进入如下页面进行配置
1.5成员资格管理实例
可参照vs2010帮助文档中的Membership类中实例代码创建
2.成员角色管理
2.1成员角色管理模型
2.1.1ASP.NET提供的角色管理将整个控制过程分成两个步骤:
2.2Roles类
2.2.2Roles类常用属性
属性 | 说明 |
ApplicationName | 获取或设置要存储和检索其角色信息的应用程序的名称。 |
CacheRolesInCookie | 获取一个值,该值指示当前用户的角色是否已缓存在某个Cookie 中。 |
CookieName | 获取在其中缓存角色名称的Cookie 的名称。 |
CookiePath | 获取缓存角色名称的Cookie 的路径。 |
CookieProtectionValue | 获取一个指示如何保护在Cookie中缓存的角色名称的值。 |
CookieSlidingExpiration | 指示是否将要定期重置角色名称 Cookie 的到期日期和时间。 |
Enabled | 获取或设置用来指示是否为当前Web 应用程序启用角色管理的值。 |
2.2.3Roles类常用方法
方法 | 说明 |
AddUsersToRole | 将指定的用户添加到指定的角色中。 |
CreateRole | 将新的角色添加到数据源。 |
DeleteCookie | 删除在其中缓存角色名称的 Cookie。 |
DeleteRole | 已重载。从数据源移除一个角色。 |
FindUsersInRole | 获取属于指定角色的用户列表,其中用户名包含要匹配的指定用户名。 |
GetAllRoles | 获取应用程序的所有角色列表。 |
GetRolesForUser | 已重载。获取当前登录的用户所属的角色列表。 |
GetUsersInRole | 获取一个用户所属角色的列表。 |
IsUserInRole | 已重载。获取一个指示用户是否属于指定角色的值。 |
RemoveUserFromRole | 从指定的角色中移除指定的用户。 |
2.3成员角色管理
2.4 启用成员角色
<!--连接的数据文件-->
<connectionStrings>
<add name="aspnetdbConnectionString" connectionString="Data Source=.;Initial Catalog=aspnetdb;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<!--添加角色-->
<roleManager enabled="true" defaultProvider="AspRolesProvider">
<providers>
<clear />
<add connectionStringName="aspnetdbConnectionString" name="AspRolesProvider"
type="System.Web.Security.SqlRoleProvider" />
</providers>
</roleManager>
2.5 角色管理事例:
protected void Button1_Click(object sender, EventArgs e)
{
//获取添加角色的角色信息
string name = TextBox1.Text;
//判断添加的角色是否存在
if (!Roles.RoleExists(name))
{
//将新的角色添加到数据源
Roles.CreateRole(name);
//重新获取列表
GridView1.DataSource = Roles.GetAllRoles();
GridView1.DataBind();
}
else
{
Response.Write("角色以存在");
}
}
2.6 给用户名添加角
//给用户名添加角色
protected void Button1_Click(object sender, EventArgs e)
{
//如果用户名he没有添加角色sss就把他添加上
if (!Roles.IsUserInRole("he", "sss"))
{
//将指定用户添加到指定的角色中
Roles.AddUserToRole("he", "sss");
}
}