是否可以使用 java 脚本销毁会话?如果是的话怎么做?我正在使用带有 C# 的 Asp.Net。
帮助赞赏!
提前致谢
如果 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 将注销/会话销毁请求返回到您的应用程序,并实际销毁会话服务器端。
由于 JavaScript 无法控制 asp.net 会话,因此您必须调用管理会话的服务器端代码。
您可以通过 ajax 部分调用某些页面,例如
$.get('~/ClearForm.aspx');
或者您也可以重定向到具有会话破坏代码的特定页面。例如,在注销时,我们会重定向到会破坏会话的注销页面。