当启动一个需要使用成员资格提供程序的新项目时,我发现无法连接到包含成员资格数据库的远程数据库。
我运行了 aspnet_regsql 并能够在远程服务器上创建成员数据库,但是当我转到 ASPNET 配置(cassini 开发服务器)时,它不会连接到远程服务器。
最佳答案
经过大量搜索,我发现 machine.config (c:\windows\Microsoft.NET\Framework\v2.0.50727\CONFIG) 中指定的默认成员资格提供程序始终指向在本地主机上运行的 SQL Server。
有一种方法可以在项目 web.config 中进行设置,而不是修改 machine.config:
1) 设置远程数据库的连接字符串
<connectionStrings>
<add name="aspnet_membership" connectionString="<your_connection_string>"/>
</connectionStrings>
2) 在 <system.web>
重新定义默认提供程序:
<membership>
<providers>
<remove name="AspNetSqlMembershipProvider"/>
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="aspnet_membership"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
applicationName="/"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="7"
minRequiredNonalphanumericCharacters="1"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""/>
</providers>
</membership>
<remove name="AspNetSqlMembershipProvider"/>
是关键!所有其他键/值均直接从 machine.config 获取
关于asp.net - 设置默认的 AspNetSqlProvider 以指向远程数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/345559/