1

ログアウト ページの後、ユーザーがブラウザー ウィンドウを閉じずにサイトに再度戻ると、ユーザー名とパスワードがブラウザーのキャッシュに保存されるため、認証ボックスは表示されません。

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からログアウトする解決策について教えてください。

4

0 に答える 0