在asp.net 2.0中,提供了各类的provider,有membership,role,profile等的。通过自定义provider可以很方便地实现如角色,用户等管理,甚至不用自己写代码了。而在vs.net 2005中,默认的各类的provider是使用sql express的,有的时候,如果想使用sql sever 2000或者sql server 2005,那应该怎么办呢?下面举例子说明:
要正确自定义provider,我们要到C:\WINNT\Microsoft.NET\Framework\v2.0.50215下,运行一个叫aspnet_regsql的工具,之后按照其步骤设置就可以了,***会产生一个叫aspnetdb的数据库。
接着,到C:\WINNT\Microsoft.NET\Framework\v2.0.50215\config下,打开machine.config文件,找到如下的代码:
- < membership>
- < providers>
- < add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />
- < /providers>
- < /membership>
注意,这里定义了membership这个provider的一些属性了,比如对密码输入的要求,对注册提示问题的要求等等,其中,留意下 connectionStringName="LoacalSqlserver"这个,再查找localsqlserver,会找到如下的代码
- < connectionStrings>
- < add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
- < /connectionStrings>
看到了吧,要改为你的sql server 2000或者sql server 2005的话,就在这里改了。
又或者可以在web.config里改也可以的
- < connectionStrings>
- < add name="MySqlProviderConnection" connectionString="server=localhost;integrated security = true;Initial Catalog=aspnetdb" />
- < /connectionStrings>
- < system.web>
- < membership defaultProvider="MySqlMembershipProvider">
- < providers>
- < add connectionStringName="MySqlProviderConnection" name="MySqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
- < /providers>
- < /membership>
- < /system.web>
其他的如profile,role等provider,修改的方法也是一样的。这就是asp.net2.0中自定义provider的方法。
【编辑推荐】