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

Asp.net 设置默认的AspNetSqlProvider以指向远程数据库,asp.net,sql-server,asp.net-membership,Asp.net,Sql Server,Asp.net Membership,当启动一个需要使用成员资格提供程序的新项目时,我发现我无法连接到包含成员资格数据库的远程数据库 我运行了aspnet_regsql并能够在远程服务器上创建成员资格数据库,但当我转到aspnet配置(cassini development server)时,它将不会连接到远程服务器。经过多次搜索,我发现machine.config中指定的默认成员资格提供程序(c:\windows\Microsoft.NET\Framework\v2.0.50727\CONFIG)始终指向本地主机上运行的SQL S

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


我运行了aspnet_regsql并能够在远程服务器上创建成员资格数据库,但当我转到aspnet配置(cassini development server)时,它将不会连接到远程服务器。

经过多次搜索,我发现machine.config中指定的默认成员资格提供程序(c:\windows\Microsoft.NET\Framework\v2.0.50727\CONFIG)始终指向本地主机上运行的SQL Server

有一种方法可以在projects web.config中设置machine.config,而不是修改machine.config:

1) 设置到远程数据库的连接字符串

    <connectionStrings>
      <add name="aspnet_membership" connectionString="<your_connection_string>"/>
    </connectionStrings>

2) 在
中,重新定义默认提供程序:

  <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>

是关键!所有其他键/值都直接从machine.config获取。以下是解决方案:

步骤1:启动Visual Studio命令提示符 类型:aspnet_regsql 指定您的服务器:如果是sqlexpress,则服务器=主机名\sqlexpress **********使用Windows身份验证

步骤2:将此复制到web配置。不要指定用户名或密码,因为您正在连接windows身份验证,这就是为什么我们使用integrated security=true

步骤3:将web管理工具上的安全>身份验证类型更改为“从Internet”

享受现在。

第二步:复制以下内容:

<remove name="LocalSqlServer"/>

<add name="LocalSqlServer" connectionString="Data Source=VMK\sqlexpress;Initial Catalog=commodity_exchange;Integrated Security=True" providerName="System.Data.SqlClient"/>



我需要添加以下几行,以便根据会员等级确定我的角色和员工简介:

   <profile>
       <providers>
           <clear/>
           <add name="AspNetSqlProfileProvider"
           connectionStringName="aspnet_membership"
           applicationName="/"
           type="System.Web.Profile.SqlProfileProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
       </providers>
   </profile>

   <roleManager enabled="true">
       <providers>
           <clear/>
           <add name="AspNetSqlRoleProvider"
           connectionStringName="aspnet_membership"
           applicationName="/"
           type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
           <add name="AspNetWindowsTokenRoleProvider"
           applicationName="/"
           type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
       </providers>
   </roleManager>   


你就是那个男人!几个小时以来,我一直在努力让它在我的非默认SQLExpress实例上工作。现在效果很好。再次感谢!今天偶然发现了这个。命令
已包含在我的
部分中。那么,我很好?
   <profile>
       <providers>
           <clear/>
           <add name="AspNetSqlProfileProvider"
           connectionStringName="aspnet_membership"
           applicationName="/"
           type="System.Web.Profile.SqlProfileProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
       </providers>
   </profile>

   <roleManager enabled="true">
       <providers>
           <clear/>
           <add name="AspNetSqlRoleProvider"
           connectionStringName="aspnet_membership"
           applicationName="/"
           type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
           <add name="AspNetWindowsTokenRoleProvider"
           applicationName="/"
           type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
       </providers>
   </roleManager>