这篇文章面向已经会使用ASP.NET登陆控件的开发者。ASP.NET登陆控件里面要进行membership配置,只要添加一个数据库,并且修改一下配置文件,便基本可以实现。下面是实现步骤:
1. sql server2005中建立了一个空的数据库:membershipdemo
2. 在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目录下运行aspnet_regsql.exe, 自动生产表结构和存储过程
3. 配置web.config
a. 增加一个数据库连接字符串
- < connectionStrings>
- < add name="SqlServices" connectionString="Data Source=Archer;Integrated Security=SSPI;Initial Catalog=MembershipDemo;" />
- < remove name="LocalSqlServer"/>
- < /connectionStrings>
b. 要求登录验证身份,加上一个forms验证。
- < authentication mode="Forms">
- < forms loginUrl="login.aspx" name=".aspxlogin"/>
- < /authentication>
c. membership配置:添加membership节点
- < membership defaultProvider="AspNetMembershipProvider" userIsOnlineTimeWindow="20">
- < providers>
- < remove name="AspNetSqlMembershipProvider" />
- < add name="AspNetMembershipProvider"
- type="System.Web.Security.SqlMembershipProvider"
- connectionStringName="SqlServices"
- enablePasswordRetrieval="true"
- enablePasswordReset="true"
- requiresQuestionAndAnswer="true"
- passwordFormat="Clear"
- applicationName="/" />
- < /providers>
- < /membership>
d. 再配置其角色管理roleManager
- < roleManager enabled="true" defaultProvider ="AspNetRoleProvider">
- < providers>
- < remove name="AspNetSqlRoleProvider" />
- < add name="AspNetRoleProvider" connectionStringName="SqlServices"
- type="System.Web.Security.SqlRoleProvider,System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
- applicationName="/" />
- < /providers>
- < /roleManager>
注意上面的remove节点, 原因是因为 默认情况下,使用的连接是 machine.config 中定义的 LocalSqlServer ,我们使用自己定义的连接比较方便.
4. 建web站点, 增加网页NewUser.aspx, 拖动CreateUserWizard控件, 设置其FinishDestinationPageUrl属性 为default.aspx, 就ok了.
5. 其他ASP.NET登陆控件也一样,拖上去就可以使用
6. 如果想要使用找回密码功能, 需要配置邮件服务器
- < mailSettings>
- < smtp deliveryMethod="Network" from="Admin@coplay.com">
- < network defaultCredentials="false" host="smtp.coplay.com" password="*" port="25" userName=*@coplay.com />
- < /smtp>
- < /mailSettings>
这样就完成了ASP.NET登陆控件的membership配置。