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