ASPNETDB 表和视图(2) 用户成员资格和角色管理 表
2007-12-05 11:31
519 查看
用户成员资格表
相信各位兄弟看了上面这张表,对大部分字段的意思都已了然于胸了。
老小弟在此只为大家理一理剩下的“小部分字段”:
PasswordFormat:密码格式?其实是密码加密方式,其.NET类型为MembershipPasswordFormat枚举。
下面列出 MembershipPasswordFormat 枚举的3个值:
Clear 不加密;
Encrypted 使用web.config中machineKey指定的方法加密/解密;
Hashed 使用单向 Salted 哈希技术进行加密(注意是单向加密,所以密码是无法检索的)。
PasswordSalt:上面提到单向 Salted 哈希技术在加密时会随机生成一个Salt,该字段就是存放这个Salt值的 。
MobilePIN:手机PIN码,现在还不知道有什么用。参见基本用户表(aspnet_Users)中的MobileAlias字段。
IsApproved:微软的定义是:表示是否可以对成员资格用户进行身份验证。
我的理解是:是否对用户启用成员资格身份验证,在设置为不启用的情况下(其实就是禁用),
即使用户提供了正确的用户名和密码也是无法成功登录的。
FailedPasswordAttemptCount:连续登录失败的次数(用户名正确,密码无效),
和web.config中设置的maxInvalidPasswordAttempts值相比较决定是否锁定用户成员资格帐户。
FailedPasswordAttemptWindowStart:记录首次登录失败的时间。
FailedPasswordAnswerAttemptCount:连续回答密码问题失败的次数。
FailedPasswordAnswerAttemptWindowStart :记录首次失败的时间,
和web.config中设置的passwordAttemptWindow值相比较决定是否锁定用户成员资格帐户。
下面再贴出web.config中有关用户成员资格的片段,
所有以颜色Fuchsia标注的都是SqlMembershipProvider的属性。
<system.web>
...
<machineKey
validationKey="AutoGenerate,IsolateApps"
decryptionKey="AutoGenerate,IsolateApps"
validation="SHA1"
/>
...
<connectionStrings>
<add name="SqlSrvConnectionString" connectionString="..."/>
</connectionStrings>
...
<membership defaultProvider="SqlSrvMembershipProvider">
<providers>
<add name="SqlSrvMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlSrvConnectionString"
applicationName="WebShop"
commandTimeout="30"
description="SqlSrvMembershipProvider"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
passwordAttemptWindow="10"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordStrengthRegularExpression=""/>
</providers>
</membership>
...
</system.web>
角色表
用户与角色关联表
上面两个有关角色管理的表,更是一目了然。如果要多说几句的话,那就是通过
aspnet_UsersInRoles这个关联表把用户表和角色表之间的多对多关系转化为两个一对多的关系,
而这正是关系数据库所要求的。
特别注意,如果你要为你的用户添加角色管理,在web.config中必须显式启用(enabled="true"),
在默认情况下,用户角色是不启用。
web.config片段:
<system.web>
...
<roleManager enabled="true">
...
<roleManager/>
...
</system.web>
相信各位兄弟看了上面这张表,对大部分字段的意思都已了然于胸了。
老小弟在此只为大家理一理剩下的“小部分字段”:
PasswordFormat:密码格式?其实是密码加密方式,其.NET类型为MembershipPasswordFormat枚举。
下面列出 MembershipPasswordFormat 枚举的3个值:
Clear 不加密;
Encrypted 使用web.config中machineKey指定的方法加密/解密;
Hashed 使用单向 Salted 哈希技术进行加密(注意是单向加密,所以密码是无法检索的)。
PasswordSalt:上面提到单向 Salted 哈希技术在加密时会随机生成一个Salt,该字段就是存放这个Salt值的 。
MobilePIN:手机PIN码,现在还不知道有什么用。参见基本用户表(aspnet_Users)中的MobileAlias字段。
IsApproved:微软的定义是:表示是否可以对成员资格用户进行身份验证。
我的理解是:是否对用户启用成员资格身份验证,在设置为不启用的情况下(其实就是禁用),
即使用户提供了正确的用户名和密码也是无法成功登录的。
FailedPasswordAttemptCount:连续登录失败的次数(用户名正确,密码无效),
和web.config中设置的maxInvalidPasswordAttempts值相比较决定是否锁定用户成员资格帐户。
FailedPasswordAttemptWindowStart:记录首次登录失败的时间。
FailedPasswordAnswerAttemptCount:连续回答密码问题失败的次数。
FailedPasswordAnswerAttemptWindowStart :记录首次失败的时间,
和web.config中设置的passwordAttemptWindow值相比较决定是否锁定用户成员资格帐户。
下面再贴出web.config中有关用户成员资格的片段,
所有以颜色Fuchsia标注的都是SqlMembershipProvider的属性。
<system.web>
...
<machineKey
validationKey="AutoGenerate,IsolateApps"
decryptionKey="AutoGenerate,IsolateApps"
validation="SHA1"
/>
...
<connectionStrings>
<add name="SqlSrvConnectionString" connectionString="..."/>
</connectionStrings>
...
<membership defaultProvider="SqlSrvMembershipProvider">
<providers>
<add name="SqlSrvMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlSrvConnectionString"
applicationName="WebShop"
commandTimeout="30"
description="SqlSrvMembershipProvider"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
passwordAttemptWindow="10"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordStrengthRegularExpression=""/>
</providers>
</membership>
...
</system.web>
角色表
用户与角色关联表
上面两个有关角色管理的表,更是一目了然。如果要多说几句的话,那就是通过
aspnet_UsersInRoles这个关联表把用户表和角色表之间的多对多关系转化为两个一对多的关系,
而这正是关系数据库所要求的。
特别注意,如果你要为你的用户添加角色管理,在web.config中必须显式启用(enabled="true"),
在默认情况下,用户角色是不启用。
web.config片段:
<system.web>
...
<roleManager enabled="true">
...
<roleManager/>
...
</system.web>
相关文章推荐
- ASPNETDB 表和视图(2) 用户成员资格和角色管理表(转载)
- ASP.NET2.0中个性化用户配置以及成员资格和角色管理在SQL Server 2000数据库中的配置
- 温故知新ASP.NET 2.0(C#)(6) - Membership&RoleManager(成员资格和角色管理)
- ASPNETDB 存储过程(2) 成员资格管理部分
- asp.net 2.0教程 成员资格和角色管理
- WebConfig里的配置成员资格角色管理
- 成员资格与角色管理的数据源配置
- 重新过一遍ASP.NET 2.0(C#)(6) - Membership&RoleManager(成员资格和角色管理)
- 温故知新ASP.NET 2.0(C#)(6) - Membership&RoleManager(成员资格和角色管理)
- 保护你的ASP.NET应用程序 15.5 ASP.NET 2.0的成员资格和角色管理器
- 关于自定义成员资格和角色管理授权提供程序的问题
- 重新过一遍ASP.NET 2.0(C#)(6) - Membership&RoleManager(成员资格和角色管理)
- asp.net Identity2 角色(Role)的使用(三)用户管理,用户控制器和视图
- ASP.NET 2.0 成员资格和角色管理授权
- 温故知新ASP.NET 2.0(C#)(6) - Membership&RoleManager(成员资格和角色管理)
- ASPNETDB 存储过程: 成员资格管理部分
- 成员资格管理与角色管理中类的一些方法 和例子
- [.NET 基于角色安全性验证] 之四:ASP.NET 2.0 成员资格和角色管理授权
- [.NET 基于角色安全性验证] 之四:ASP.NET 2.0 成员资格和角色管理授权
- 【C#.NET】保护你的ASP.NET应用程序(二)ASP.NET 2.0的成员资格和角色管理器