Самый простой способ - использовать преобразования конфигурации, как сказал Бхавеш, хотя опубликованный им web.config устарел с NET 4.5.
У вас может быть локальная конфигурация разработки в web.config
, облачная конфигурация разработки в web.Debug.config
и производственная конфигурация в web.Release.config
.
Вот пример web.Debug.config (только соответствующие части):
<system.identityModel>
<identityConfiguration>
<audienceUris>
<add xdt:Transform="RemoveAll" />
<add value="http://myinstance.cloudapp.net/" xdt:Transform="Insert" />
</audienceUris>
</identityConfiguration>
</system.identityModel>
<system.identityModel.services>
<federationConfiguration >
<cookieHandler requireSsl="false" />
<wsFederation passiveRedirectEnabled="true" issuer="https://mynamespace.accesscontrol.windows.net/v2/wsfederation" realm="http://myinstance.cloudapp.net/" reply="http://myinstance.cloudapp.net/" requireHttps="false" xdt:Transform="Replace"/>
</federationConfiguration>
</system.identityModel.services>
Теперь осталось только настроить проверяющую сторону для каждой конфигурации на портале ACS.
На самом деле вы можете настроить один RP для всех трех конфигураций, но единственный способ добиться этого — программно использовать API управления службами, поскольку портал позволяет настроить только одно значение Realm/Return URL для каждой проверяющей стороны.
Обратите внимание, что если вы решите сделать это, вам нужно будет установить обратный URL-адрес в файле web.config (reply
attribute), иначе ACS всегда будет перезаписывать его первым настроенным обратным URL-адресом (тот, который вы видите на портале).
person
Shahin Dohan
schedule
01.04.2013