我可以使用JavaScript删除ASP.NET身份验证cookie(.ASPXAUTH)吗?
我可以使用JavaScript删除ASP.NET身份验证cookie(.ASPXAUTH)吗?我想在我的ASP.NET/JavaScript移动应用程序上实现注销功能,而无需往返服务器。然而,由于某些原因,这种方法不起作用我可以使用JavaScript删除ASP.NET身份验证cookie(.ASPXAUTH)吗?,javascript,asp.net,forms-authentication,Javascript,Asp.net,Forms Authentication,我可以使用JavaScript删除ASP.NET身份验证cookie(.ASPXAUTH)吗?我想在我的ASP.NET/JavaScript移动应用程序上实现注销功能,而无需往返服务器。然而,由于某些原因,这种方法不起作用 document.cookie = '.ASPXAUTH=; expires=Thu, 01-Jan-70 00:00:01 GMT;'; 我该怎么办 多谢各位 更新:好的,我读到了关于HttpOnly cookies的文章,事实就是如此。为了使cookie不只是HttpO
document.cookie = '.ASPXAUTH=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
我该怎么办
多谢各位
更新:好的,我读到了关于HttpOnly cookies的文章,事实就是如此。为了使cookie不只是HttpOnly,请将以下行添加到web.config(system.web部分):
您不需要删除cookie就可以注销用户,只需将“expires”值设置为Dayed,然后BOOM,用户已被记录
考虑一下这篇非常有用的博文:我想说你也想注销服务器,以便清理会话状态等等。我不使用会话状态,因为它是一个JavaScript客户端应用程序。我使用服务器部件进行身份验证和REST API。@Alex Avrutin感谢您的快速更新:)。你可以把它作为你自己问题的答案发布并接受它。然而,我仍然需要弄清楚如何制作cookie而不仅仅是HttpOnly。这是一种处理注销的非常聪明的方法。仍然对安全性感到疑惑,但值得一试。谢谢,但是如果cookie是HttpOnly,我甚至无法读取它,也无法修改“expires”值。
<httpCookies httpOnlyCookies="false"/>
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;
}
}
}
}