在我的Web配置中,我定义了2个成员资格提供程序,一个用于sql,一个用于活动目录。我的思维过程是在发布版本中,我将AD设置为默认值,但在调试时我使用sql。这是因为我的开发计算机无法访问域以对用户进行身份验证。
然而,在我看来,我的网站试图连接到两个来源,而不仅仅是默认提供商。因此,虽然我定义了一个活动目录提供程序,但由于无法连接,我无法进行开发,即使sql被定义为默认值。
有没有办法只连接到默认提供商?
我目前损坏的网络配置是这样的:
<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>
答案 0 :(得分:2)
在您的web.release.config文件中,您只需将整个成员资格部分替换为AD信息,并在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>
答案 1 :(得分:1)
答案 2 :(得分:0)
在web.config
添加默认提供商内:
<connectionStrings>
<add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" />
</connectionStrings>
在web.Release.config
内添加转化:
<connectionStrings>
<add name="ApplicationServices"
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
xdt:Transform="Replace" xdt:Locator="Match(name)"/>
</connectionStrings>
注意:强>
更改构建配置不会触发仅在您发布网站时才有效的转换。
要测试它,您不必在生产服务器上执行此操作,您可以发布到文件系统。