.net 成员资格提供程序-仅连接到默认提供程序?

.net 成员资格提供程序-仅连接到默认提供程序?,.net,asp.net-mvc,asp.net-mvc-3,.net,Asp.net Mvc,Asp.net Mvc 3,在我的web配置中,我定义了两个成员资格提供程序,一个用于sql,一个用于active directory。我的想法是,在发布版本中,我将AD设置为默认值,但在调试时使用sql。这是因为我的开发人员计算机无法访问域来验证用户 然而,在我看来,我的网站试图连接到两个源,而不仅仅是默认的提供者。因此,虽然定义了active directory提供程序,但我无法进行开发,因为它无法连接,即使sql被定义为默认值 是否有方法仅连接到默认提供程序 我当前损坏的web配置如下所示: <membersh

在我的web配置中,我定义了两个成员资格提供程序,一个用于sql,一个用于active directory。我的想法是,在发布版本中,我将AD设置为默认值,但在调试时使用sql。这是因为我的开发人员计算机无法访问域来验证用户

然而,在我看来,我的网站试图连接到两个源,而不仅仅是默认的提供者。因此,虽然定义了active directory提供程序,但我无法进行开发,因为它无法连接,即使sql被定义为默认值

是否有方法仅连接到默认提供程序

我当前损坏的web配置如下所示:

<membership defaultProvider="AspNetSqlMembershipProvider">
  <providers>
    <clear/>
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="SqlServer" />
    <add name="ActiveDirectoryMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ActiveDirectoryServer" attributeMapUsername="sAMAccountName"/>

  </providers>
</membership>

您正在使用VS2010吗

使用如何


Scott Guthrie的博客中也有一个默认的提供者。

在您的
web.config
中添加默认提供者:

    <connectionStrings>
        <add name="ApplicationServices" 
             connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" />
      </connectionStrings>
注意:

更改生成配置不会触发转换,它仅在发布网站时起作用


要测试它,您不必在生产服务器上执行此操作,您可以发布到文件系统。

在您的web.release.config文件中,您只需将整个成员资格部分与广告信息交换,在web.config中,您可以将其保留为它,或者只使用SQL提供程序

对于web.release.config:

<system.web>
  <membership defaultProvider="ActiveDirectoryMembershipProvider" xdt:Transform="Replace">
    <providers>
      <clear/>
      <add name="ActiveDirectoryMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ActiveDirectoryServer" attributeMapUsername="sAMAccountName"/>
    </providers>
  </membership>
</system.web>


您是否反对将他们都命名为“会员资格提供者”,然后注释掉不必要的一个?这就是我目前部署的工作。但这并不理想。我目前正在使用转换来更改发布版本上的默认提供程序,但我不知道是否可以在删除另一个提供程序的同时添加一个全新的提供程序。
<system.web>
  <membership defaultProvider="ActiveDirectoryMembershipProvider" xdt:Transform="Replace">
    <providers>
      <clear/>
      <add name="ActiveDirectoryMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ActiveDirectoryServer" attributeMapUsername="sAMAccountName"/>
    </providers>
  </membership>
</system.web>