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 中做了这个 hack:

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 第 1 部分中使用 cookie

于 2012-04-28T15:04:21.473 回答