您的位置:首页 > 编程语言 > ASP

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: