4

web.configトランスフォームを使用して、プロダクションにドメイン属性を含めるにはどうすればよいweb.configですか?

私のベースには次のものがありますweb.config

<authentication mode="Forms">
    <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
</authentication>

で以下を使用しようとしましたweb.prod.configが、プロジェクトを公開するときに属性が追加されません。

<authentication mode="Forms" xdt:Transform="Replace">
    <forms loginUrl="~/Account/Login.aspx" timeout="2880" domain=".mydomain.com" />
</authentication>

出力は次のようにしたいと思います。

<authentication mode="Forms">
    <forms loginUrl="~/Account/Login.aspx" timeout="2880" domain=".mydomain.com"/>
</authentication>
4

2 に答える 2

7

これら 2 つのうちの 1 つが機能するはずです (テストされていませんが、 Microsoft のドキュメントに基づいています)。

<system.web>
  <authentication mode="Forms" xdt:Transform="Replace" xdt:Locator="Match(forms)">
    <forms loginUrl="~/Account/Login.aspx" timeout="2880" domain=".mydomain.com" />
  </authentication>
</system.web>

<system.web>
  <authentication mode="Forms">
    <forms domain=".mydomain.com" xdt:Transform="SetAttributes(domain)" />
  </authentication>
</system.web>
于 2011-03-13T19:37:10.600 に答える
3

構成全体を見ないと、これが機能することを確認できませんが、ロケーターを追加して、その行を確実に取得して変換することを確認します。

だから、ただの代わりに

<authentication mode="Forms" xdt:Transform="Replace">

このパスでこのようなものに一致するもの

試す

<authentication mode="Forms" xdt:Transform="Replace" xdt:Locator="Match(mode)"> 

これは、その xpath で認証ノードを明示的に選択します。ここで、モード = フォームは、変換エンジンに 1 つだけ一致し、置換を行う必要があります。

それがうまくいかない場合は、反対側に出てくるかどうかを確認するために loginUrl を変換に変更することで、変換がまったく行われているかどうかを少し逆にして確認します (これは疑います)。

どこかで変換エラーが発生していて、適用されていない可能性があります。

于 2011-03-14T18:22:13.097 に答える