gpt4 book ai didi

asp.net - web.config 转换为 microsoft.identitymodel 配置部分

转载 作者:行者123 更新时间:2023-12-02 03:55:49 24 4
gpt4 key购买 nike

如何使用标准的 visual studio web.config 转换来转换 microsoft.identitymodel 配置部分中的 audienceUris 和 federatedAuthentication 元素?

对于开发环境,我们将所有子域都以“-dev”作为后缀以及特殊的本地主机端口号,例如:realm="https://client-dev.domain.com:444"。今天主要的 web.config 反射(reflect)了这一点,但理想情况下,我们希望将此设置移动到 Web.Debug.config 中,在 Web.Release.config 中,我们希望指定适当的受众和领域,没有“-dev”后缀和本地端口设置。但是,尝试将 xdt:Transform="Replace"放在 Web.Debug.Config 内的 microsoft.identitymodel 元素中会导致此警告:

The 'http://schemas.microsoft.com/XML-Document-Transform:transform' attribute is not declared.

当然还有运行时故障(例如无法找到服务证书)。

这是 microsoft.identitymodel 部分:

<configuration>
<configSections>
<section name="microsoft.identityModel" type="Microsoft.IdentityModel.Configuration.MicrosoftIdentityModelSection, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>

<microsoft.identityModel>
<service>
<applicationService>
<claimTypeRequired>
<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier" optional="false" />
<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" optional="false" />
</claimTypeRequired>
</applicationService>
<serviceCertificate>
<certificateReference x509FindType="FindByThumbprint" findValue="NNNNNNNNNN" storeLocation="LocalMachine" storeName="My" />
</serviceCertificate>
<certificateValidation certificateValidationMode="None" />
<audienceUris>
<add value="https://url/" />
</audienceUris>
<federatedAuthentication>
<wsFederation passiveRedirectEnabled="true" issuer="https://url/" realm="https://url/" requireHttps="true" />
<cookieHandler requireSsl="true" />
</federatedAuthentication>
<issuerNameRegistry type="Microsoft.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<trustedIssuers>
<add thumbprint="NNNNNNNNNN" name="https://url/" />
</trustedIssuers>
</issuerNameRegistry>
</service>
</microsoft.identityModel>
<configuration>

现有的不起作用的解决方案:

1) 这里提出了同样的问题,但没有适当的回应。 RemoveAll 和 Insert 不起作用: Web config transform on microsoft.identityModel - 'http://schemas.microsoft.com/XML-Document-Transform' attribute is not declared

2) 此外,尝试按照此线程中的建议操作命名空间,但这也不起作用: http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/9ededb66-3e34-4bba-8e20-a2cc6025f0f9

3) configSource 看起来很有前途,但在 microsoft.identitymodel 元素中指定时再次起作用。我得到:

Warning 1   The 'configSource' attribute is not declared.

http://blog.andreloker.de/post/2008/06/16/Keep-your-config-clean-with-external-config-files.aspx

任何帮助将不胜感激!谢谢。

最佳答案

经过大量试验和错误后,我求助于使用 Loren Halvorson 的 XMLPreProcess 从 TemplateWeb.config 自动生成正确的 Web.config 作为每个项目预构建事件的一部分。

虽然我希望 Visual Studio 在这方面的尝试能为开发人员服务,唉,时间就是金钱,是时候让我继续前进了。不用说,它在 SQL Azure SDK 中也被破坏了,因为转换仅在您发布站点时发生。在最新的 Azure SDK 中,情况不再如此,因此转换也停止工作。哦快乐!

这是我认为是每个 ASP.NET 开发人员必备的优秀工具的链接:

http://xmlpreprocess.codeplex.com/

关于asp.net - web.config 转换为 microsoft.identitymodel 配置部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12667742/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com