Membership的学习

利用Membership时可以很方便地对各种网站进行用户管理和角色管理,而不需要像原来那样写大量的代码来实现。
使用membership有三个步骤:
(1).配置数据库
首先从开始菜单,运行,键入cmd,cd 进入.netframework2.0目录,一般位于C盘下的WINDOWS目录下,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727找到aspnet_regsql.exe,运行它。就会弹出一个ASP.NET SQL Server安装向导,按照提示一步一步配置完成。打开SQL Server 2005管理工具,就会看到数据库中多了一个aspnetdb的数据库。这就是ASP.NET Membership框架进行用户及角色管理所要使用的数据库。而这个数据库一切都是在配置完成后自动生成的。
(2).配置网站的webconfig文件
配置这个webconfig文件,尤其要注意字母的大小写问题及标签的封装问题,因为XML文件对字母的大小写是敏感的。
首先是添加一个用于连接数据库的字符串:
<connectionStrings>
 <add name="loginstrings" connectionString="Password=xc;Persist Security Info=True;User ID=sa;Initial Catalog=aspnetdb;Data Source=XC-SVR" providerName="System.Data.SqlClient"></add>
  </connectionStrings>
接着是将网站的认证模式改为表单认证以及给用户授权:

<authentication mode="Forms" ><forms loginUrl="Login.aspx" defaultUrl="Register/Regester.aspx"></forms>
   </authentication>

<authorization>
      <deny users="?"/>
   </authorization>

最后是在<System.web></System.web>节点内添加membership节点内添加相应的设置。具体设置及几个可选参数的含义如下表所示;

.使用MemberShip时Web.config中属性其功能解释

名称 说明
name providers名称
type 类型,用SQL是为:System.Web.Security.SQLMembershipProvider
connectionStringName 连接字符串名称
enablePasswordRetrieval 是否允许用户检索其密码(没用的东西,跟机制有冲突)通常False
enablePasswordReset 是否允许用户重置密码
requiresQuestionAndAnswer 是否要求用户在进行密码重置和检索时回答密码提示问题
applicationName 标识应用程序特有的用户,相同的用户名可对应于指定了applicationName的多个Asp.Net应用程序
requiresUniqueEmail 是否要求用户Email唯一
passwordFormat 密码加密方式,三种值:clear-->不加密,Hashed-->哈希加密方式,Encrypted
maxInvalidPasswordAttempts 最多尝次登陆次数,失败则锁定
minRequiredPasswordLength 密码最短长度
minRequiredNonalphanumericCharacters 密码中特殊字符个数
passwordAttemptWindow 最大尝次登陆时间数,单位:分
passwordStrengthRegularExpression 指定密码格式的正则表达式


Web.config中添加时如下:
<membership userIsOnlineTimeWindow="20">
    <providers>
     <add connectionStringName="loginstrings" applicationName="/"
          description="" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0"
          enablePasswordRetrieval="false" enablePasswordReset="false"
          requiresQuestionAndAnswer="false" passwordFormat="Hashed" name="AspNetSqlProvider"
          type="System.Web.Security.SqlMembershipProvider" />
    </providers>
    </membership>
posted @ 2009-10-28 15:10  美梦成真  阅读(343)  评论(0编辑  收藏  举报