2

わかりましたので、混合認証モードを開発したWebアプリケーションがあります。ログイン用に 2 つのページを作成しました (IIS7 を使用しています)。1 つは login.aspx という名前のフォーム ログイン用、もう 1 つは winlogin.aspx という名前の Windows ログイン用です。Web 構成は次のようになります。

<authentication mode="Forms">
      <forms cookieless="UseCookies" defaultUrl="Default.aspx" loginUrl="Login.aspx" name="xxx" path="/" protection="All" timeout="30"></forms>
    </authentication>
    <authorization>
      <deny users="?" />
      <allow users="*" />
    </authorization>
  </system.web>

<location path="WinLogin.aspx">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>

IISでは、winloginページの匿名認証を無効に、Windows認証を有効に設定したため、Windows認証ポップアップを取得できます(Windowsユーザー名とパスワード用)。すべてが機能し、["LOGON_USER"] を含む Cookie をフォームに送信しており、ユーザーが認証されています。問題は、ポップアップでキャンセル ボタンを押しようとしたときです (IIS 7 で設定された既定のエラー ページ (401.htm、500.htm...) と、カスタム エラーのページだけをサーバー エラーに表示する機能設定、401 .htm ページが表示される この動作は問題ありませんが、カスタム エラー ページ (401 エラーの場合) を変更して Login.aspx に戻ると (ユーザーはフォーム ベースで認証できるようになります)、ユーザーがキャンセルを押したときにWinLogin.aspx をロードすると、ポップアップが表示されません。t が表示され、自動的に Login.aspx にリダイレクトされます。なぜこれを行っているのかわかりませんが、サーバーエラー(401)が発生したことを意味します。奇妙な..このページも401エラーに設定されていますが、機能設定は次のように設定されています:「ローカルリクエストとカスタムの詳細エラー...」ポップアップが再び表示され、認証に機能します。誰かがこの動作を説明できる場合。

4

0 に答える 0