2

표준 Visual Studio Web.config 변환을 사용하여 microsoft.identitymodel 구성 섹션의 audience 및 federatedAuthentication 요소를 어떻게 변환합니까?microsoft.identitymodel 구성 섹션에 대한 web.config 변형

개발 환경의 경우 특수 localhost 포트 번호와 함께 '-dev'가 뒤에 오는 모든 하위 도메인이 있습니다 (예 : realm = "https://client-dev.domain.com:444"). 오늘 메인 web.config는 이것을 반영하지만, 이상적으로 우리는 Web.Debug.config와 Web.Release.config에이 설정을 옮기고 싶습니다. 적절한 청중과 영역을 지정하고 싶습니다. '-dev'접미사와 로컬 포트 ​​설정. 그러나 XDT을 넣어 시도 :

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

물론 런타임 오류의

가 (에 대한 servicecertificate을 찾을 수 없다는 :이 경고의 Web.Debug.Config 결과 내부 microsoft.identitymodel 요소에 "교체"= 변환 예).

여기 microsoft.identitymodel 섹션의 :

1) 같은 문제는 여기서 발생하지 있지만 적절한 응답 하였다 작동하지 않습니다

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

기존 솔루션을 제공합니다. Web config transform on microsoft.identityModel - 'http://schemas.microsoft.com/XML-Document-Transform' attribute is not declared

2) 또한,이 스레드에서 제안 네임 스페이스를 조작하는 시도하고이 중 하나가 작동하지 않습니다 : removeAll 메와 삽입이 작동하지 않습니다 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

는 어떤 도움을 이해할 수있을 것이다! 감사.

답변

0

많은 시행 착오 끝에 Loren Halvorson이 XMLPreProcess를 사용하여 각 프로젝트의 미리 빌드 이벤트의 일부로 TemplateWeb.config에서 올바른 Web.config를 자동 생성했습니다.

개발자를 위해 Visual Studio에서 시도한 작업이 마음에 들었지 만, 슬프게도 시간은 돈과 시간이었습니다. 물론 사이트를 게시 할 때만 변환이 발생하기 때문에 SQL Azure SDK에서도 문제가 발생합니다. 최신 Azure SDK에서는 더 이상 지원되지 않으므로 변환 작업도 중단됩니다. 오, 기쁨! 여기

는 훌륭한 도구에 대한 링크입니다, 나는 모든 ASP.NET 개발자를위한 -이 있어야합니다, 생각 :

http://xmlpreprocess.codeplex.com/