私は一般に基本認証を使用するMVCアプリケーションを持っています。これにより、アプリケーションユーザをcetain管理機能のために別のActive Directoryユーザに変更することができます。私たちは、このようにresponse.StausCode = 401を設定することでこれを行う: -ASP.NET MVC 401 - ログインのプロンプトが表示されない
Response.Clear();
Response.StatusCode = (Int32)HttpStatusCode.Unauthorized;
Response.AddHeader("WWW-Authenticate", "Realm=Secured Site");
Response.AddHeader("Refresh", "0;");
Response.End();
これは正常に動作しますが、私はこれで、アプリケーションにWindows認証を使用しようとしているが、それでもユーザーは、以前の方法を使用して変更することができるようにしています。これは、アプリケーションがロードされたとき(つまり、サイトに移動するときに 'changeuser'アクションリンクを選択する)最初に機能するようです。問題は、一度インデックスページから移動すると、 'changeuser'アクションリンクは、401が設定されているにもかかわらず、ユーザーにもうログインを促さないことです。
ご了承ください。
私は、ユーザーエージェントが要求間の基本的なHTTP認証情報をキャッシュすることをかなり確信している - それは401を取得するときに、それは単純にキャッシュされた資格情報を送り返すユーザーが以前に入力された - それはとにかくリクエストごとに認証情報を送信する必要があります。 –
Basicの場合statuscode = 401を設定するたびにログインウィンドウが表示されます。これは可能であればWindows Authで発生します。 – Parsley