3

JavaScript を使用して ASP.NET 認証 Cookie (.ASPXAUTH) を削除できますか? サーバーへのラウンドトリップなしで、ASP.NET/JavaScript モバイル アプリケーションにサインアウト機能を実装したいと考えています。ただし、このアプローチは何らかの理由で機能しません。

document.cookie = '.ASPXAUTH=; expires=Thu, 01-Jan-70 00:00:01 GMT;';

私は何をすべきか?

ありがとうございました。

更新: わかりました、HttpOnly Cookie について読みましたが、まさにその通りです。Cookie を HttpOnly にしないようにするには、次の行を web.config (system.web セクション) に追加します。

<httpCookies httpOnlyCookies="false"/>

更新: 上記の方法は機能しません。ASP.NET は単に命令を無視します。Global.asaxでこのハックを行うことになりました:

protected void Application_EndRequest(Object sender, EventArgs e)
{
    string cookieName = System.Web.Security.FormsAuthentication.FormsCookieName;
    if (Response.Cookies.Count > 0)
    {
        foreach (string s in Response.Cookies.AllKeys)
        {
            if (s == cookieName)
            {
                Response.Cookies[cookieName].HttpOnly = false;
            }
        }
    }
}
4

1 に答える 1

0

ユーザーをサインアウトするために Cookie を削除する必要はありません。「有効期限」の値を昨日に設定するだけで、BOOM、ユーザーはログアウトされました。

この非常に役立つブログ投稿を検討してください: Javascript での Cookie の使用パート 1

于 2012-04-28T15:04:21.473 に答える