我想在我的网站上实现
Asp.net Forms身份验证.通常,您在web.config中提供数据库连接字符串的名称.但是,由于我们的数据库设置稍微复杂一些,我一直在寻找一种方法来手动为MembershipProvider提供代码中的连接字符串.
谢谢!
解决方法
您不必为sqlMembershipProvider使用connectionStringName,而是可以直接提供连接字符串.即代替:
<membership defaultProvider="sqlProvider" ...> <providers> <add name="sqlProvider" type="System.Web.Security.sqlMembershipProvider" connectionStringName="MyConnectionStringName" .../> </providers> </membership>
您可以直接指定连接字符串:
<membership defaultProvider="sqlProvider" ...> <providers> <add name="sqlProvider" type="System.Web.Security.sqlMembershipProvider" connectionString="data source=... " .../> </providers> </membership>
因此,您还可以从sqlMembershipProvider派生自定义提供程序,并按如下方式动态构建连接字符串:
public class MysqLMembershipProvider : sqlMembershipProvider { public override void Initialize(string name,NameValueCollection config) { config["connectionString"] = BuildMyCustomConnectionString(); base.Initialize(name,config); } }