ログアウト ページの後、ユーザーがブラウザー ウィンドウを閉じずにサイトに再度戻ると、ユーザー名とパスワードがブラウザーのキャッシュに保存されるため、認証ボックスは表示されません。
IE では、document.execCommand("ClearAuthenticationCache") が正常に動作しています。しかし、これはサファリでは機能しないようです。
次のオプションを試しましたが、
1)Response.Statuscode=401
(サーバー側から)-これにより、認証キャッシュがクリアされ、資格情報ポップアップが表示されますが、正しい資格情報を提供しても受け入れられません。キャンセルをクリックして再度ページにアクセスしようとすると、問題なく動作します。
2)XMLHttpRequestfrom
クライアントの使用 - 同じサイトの URL を開こうとして資格情報が空白の場合、readyState と statuscode は常に 0 を返します。
function testfn() {
alert("send completed");
alert(XMLHttp1.readyState);
}
function run()
{
XMLHttp1 = new XMLHttpRequest();
XMLHttp1.onreadystatechange = testfn();
XMLHttp1.open('GET', 'http://172.22.164.253/test/testxml.xml', true, '_', '_');
try {
XMLHttp1.wi
XMLHttp1.send();
alert("sent");
alert("status" + XMLHttp1.status);
alert(XMLHttp1.status == 401) ;
}
catch (ex) {
alert("Exception: Got an exception. " + ex);
}
}
3) キャッシュのクリア - 以下のすべてのコードをさまざまな組み合わせで試しましたが、うまくいきませんでした
Response.ExpiresAbsolute=DateTime.Now.AddDays(-1d);
Response.Expires =-1500;
Response.CacheControl = "no-cache";
Response.Redirect("Login.aspx");
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache);
Page.Response.Cache.SetNoStore();
Windows認証を使用してASP.NETページで作業中にSafariからログアウトする解決策について教えてください。