Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以使用JavaScript删除ASP.NET身份验证cookie(.ASPXAUTH)吗?_Javascript_Asp.net_Forms Authentication - Fatal编程技术网

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

我可以使用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

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

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