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;
}
}
}
}