3

3.5 からアップグレードされた ASP.NET 4.0 Web アプリケーションがあります。残念ながら、ユーザーがhttp://xxx.abc.com/経由で URL にアクセスしようとすると、ユーザーは /login.aspx?ReturnUrl=%2f を取得します。

これは .NET 4.0 および IIS7 での動作のように思われることを理解しています。これにより、 302 ステータスコードが返されるため、ロード バランサーで問題が発生しています。何らかの理由で、ロード バランサーが http 200 ステータスコードを探すように構成されています。

ユーザーがhttp://xxx.abc.com/をクリックすると、リダイレクトなしで login.aspxが表示されるように、ASP.NET 4.0 の動作を修正する方法はありますか?

以下でこれを試しましたが、うまくいきませんでした:

<system.webServer>
    <defaultDocument>
      <files>
        <add value="Login.aspx" />
      </files>
    </defaultDocument>
</system.webServer>

ありがとう。

4

1 に答える 1

4

.NET 4 / IIS 7 の動作ではなく、フォーム認証の動作です。Authentication モジュールが最初に実行され、Default Document モジュールがチャンスを得る前にリダイレクトをトリガーするようです。回避策として私が提案するのは次のとおりです。

この書き換えルールを使用login.aspxして、ルート URL からステータス コード 200 を返しました。

<rewrite>
  <rules>
    <rule name="RewriteURL1" stopProcessing="true">
      <match url="" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
      </conditions>
      <action type="Rewrite" url="login.aspx" />
    </rule>
  </rules>
</rewrite>
于 2012-09-24T05:12:20.230 に答える