正确使用ASP.NET2.0中的自定义provider


  本文标签:自定义provider ASP.NET2.0

  在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文件,找到如下的代码:  

  1. < membership>   
  2. < providers>   
  3. < 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="" />   
  4. < /providers>   
  5. < /membership>  

  注意,这里定义了membership这个provider的一些属性了,比如对密码输入的要求,对注册提示问题的要求等等,其中,留意下 connectionStringName="LoacalSqlserver"这个,再查找localsqlserver,会找到如下的代码 

  1. < connectionStrings>  
  2.     < add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />  
  3.   < /connectionStrings>  

  看到了吧,要改为你的sql server 2000或者sql server 2005的话,就在这里改了  。

  又或者可以在web.config里改也可以的 

  1. < connectionStrings>  
  2. < add name="MySqlProviderConnection" connectionString="server=localhost;integrated security = true;Initial Catalog=aspnetdb" />  
  3. < /connectionStrings>   
  4.  
  5. < system.web>  
  6. < membership defaultProvider="MySqlMembershipProvider">  
  7. < providers>  
  8. < add connectionStringName="MySqlProviderConnection" name="MySqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />  
  9. < /providers>  
  10. < /membership>  
  11. < /system.web>  
  12.  

  其他的如profile,role等provider,修改的方法也是一样的  。这就是asp.net2.0中自定义provider的方法  。