我可以使用JavaScript删除ASP.NET身份验证Cookie(.ASPXAUTH)吗?我想在我的ASP.NET/JavaScript移动应用程序上实现注销功能,而无需往返于服务器。但是,这种方法由于某种原因不起作用。我可以使用JavaScript删除ASP.NET身份验证Cookie(.ASPXAUTH)吗?
document.cookie = '.ASPXAUTH=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
我该怎么办?
谢谢。
更新:好的,我读了一篇关于HttpOnly cookies的文章,它就是这种情况。为了使该cookie不是仅Http,以下行添加到web.config文件(的System.Web部分):
<httpCookies httpOnlyCookies="false"/>
UPDATE:以上方法不起作用 - 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;
}
}
}
}
我说你要注销的服务器上为好,以清理会话状态和这样的。 – 2012-04-27 21:42:48
嗯,我不使用会话状态,因为它是一个JavaScript客户端应用程序。我使用服务器部分进行身份验证和REST API。 – 2012-04-27 21:48:57
@Alex Avrutin感谢您的快速更新:)。你可以把它作为你自己问题的答案发布并接受它。 – Li0liQ 2012-04-27 21:52:30