这篇文章面向已经会使用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配置。