asp.net - 设置默认的 AspNetSqlProvider 以指向远程数据库

标签 asp.net sql-server asp.net-membership

当启动一个需要使用成员资格提供程序的新项目时,我发现无法连接到包含成员资格数据库的远程数据库。

我运行了 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/

相关文章:

sql - SQL 绑定(bind)参数会影响性能吗?

mysql - 尝试绑定(bind)参数号 0。SQL Server 最多支持 2100 个参数

sql - 如何将两个表中的数据插入到一个表中?

asp.net-mvc - 如何删除由WebSecurity.CreateUserAndAccount创建的帐户?

c# - 如何在基于表单的身份验证中检查用户是否登录

asp.net - 我可以将 Entity Framework 与 ASP.NET 成员资格一起使用吗?

asp.net - 在 Visual Studio 2010 中使用 ASP.NET MVC2 Web 应用程序以 .NET3.5 为目标?

asp.net - 如何处理ASP.NET的HyperLink.NavigateUrl中的特殊字符?

c# - 在 C# 中将 HTTP 流保存到文件

c# - HttpContext.Current.Response.Flush() 与 response.redirect false