我可以使用JavaScript删除ASP.NET身份验证cookie(.ASPXAUTH)吗?

时间:2012-04-27 21:40:31

标签: javascript asp.net forms-authentication

我可以使用JavaScript删除ASP.NET身份验证cookie(.ASPXAUTH)吗?我想在我的ASP.NET / Java手机应用程序上实现注销功能,而无需往返服务器。但是,这种方法由于某种原因不起作用。

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

1 个答案:

答案 0 :(得分:0)

您不需要删除cookie以便注销用户,只需将“expires”值设置为昨天,然后将BOOM设置为用户已注销。

请考虑这篇非常有用的博文:Using cookies in Javascript part 1