0

是否可以使用 java 脚本销毁会话?如果是的话怎么做?我正在使用带有 C# 的 Asp.Net。

帮助赞赏!

提前致谢

4

2 回答 2

2

如果 cookie(包含用于将用户链接到会话的会话 ID)不是HttpOnly,则可以在 JavaScript 中取消设置。

function deletecookie(name) {
        var expdate = new Date();
        expdate.setTime(expdate.getTime() - 1);
        document.cookie = name += "=; expires=" + expdate.toGMTString();
}

如果是HttpOnly(通常,大多数与身份验证相关的 cookie 应该是!),那么您无法通过 JavaScript 影响它。JavaScript/cookies 的一个很好的描述在这里

请记住,这并没有破坏会话,它只是破坏了用户与它的链接,从而有效地将他们注销。如果他们有存储在 cookie 中的 ID 记录,或者第三方截获了它,则可以通过在对您的应用程序的下一个请求中包含该 cookie 来“恢复”(或重用)会话。

更安全的方法是将 AJAX 将注销/会话销毁请求返回到您的应用程序,并实际销毁会话服务器端。

于 2012-10-25T11:40:52.813 回答
1

由于 JavaScript 无法控制 asp.net 会话,因此您必须调用管理会话的服务器端代码。

您可以通过 ajax 部分调用某些页面,例如

$.get('~/ClearForm.aspx');

或者您也可以重定向到具有会话破坏代码的特定页面。例如,在注销时,我们会重定向到会破坏会话的注销页面。

于 2012-10-28T14:50:58.377 回答