ASP.Net Membership简单的自定义provider

有时候新建一个非空的asp.net项目,VS会提供一个用户登录、注册、修改等功能的模块,默认使用一个attached的mdb数据文件。对于想使用自己的数据库、项目需求简单、或者喜欢DIY的人来说,不甚雅观。

1. 修改provider,使之使用您自定义数据库

在你新建系统,F5之,但还未点击使用任何用户登录注册功能时,网站中并无所说的attached数据文件。一旦用户使用“注册”,新增了一个用户,系统自动在项目中的app_data目录下添加默认的数据文件,其具体地址是根据安装的.Net Framework版本目录下的machine.config中参数决定的:打开[SysDrive]\Windows\Microsoft.NET\Framework\[version]\Config\machine.config,找到<membership>节点:

         <membership>
            <providers>
                <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
            </providers>
        </membership>

把这段copy去项目中的<system.web>节点内,其中type太长不要了,重点是connectionStringName,你懂的。需要注意的是 ,直接copy并修改后还不行,因为系统首先调用machine.config中的设定。因此,在项目web.config的<membership>节点下、您的<provider>节点前加上<clear />,由是系统只专注您写的这些provider。这个provider节点的诸多配置参考msdn。

2. 您的数据库需要先改造

指定了数据库还不行,还需要创建该机制使用的数据环境,即改造您的数据库。微软提供了一条龙自动化服务:使用aspnet_regsql.exe命令。简单点的命令如

aspnet_regsql.exe -S .\SQLEXPRESS -E -A m -d MyDB

具体含义用/?看一下,你懂的。由是即可创建出简约而不简单的、支持membership类各项功能的数据库环境来。

3. 。。。到这一步了 ,怎么用membership,自己再去google吧。

Membership.CreateUser、Membership.ValidateUser。。。注意要加上using System.Web.Security; 引用。

 


尾声:微软提供的Arthority功能,除了membership---即用户注册、登录etc功能 外,还有profile,role等。特别是role,提供用户分组、分角色管理功能,是CMS必备之利器。欲练神功,必先google。

posted @ 2012-06-10 23:32  davewu  阅读(282)  评论(0编辑  收藏  举报