正確使用ASP.NET2.0中的自定義provider
在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的方法。
【編輯推薦】