是否可以使用java脚本销毁会话?如果是的话怎么办?我在C#中使用Asp.Net。
帮助感谢!
提前致谢
答案 0 :(得分: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 / cookie的良好描述是here。
请记住,这并没有破坏会话,它只是打破了用户与它的链接,有效地将它们记录下来。如果他们有存储在cookie中的ID记录,或者第三方截获了该ID,则可以通过在下一个请求中包含该cookie来“恢复”(或重复使用)该会话。
更安全的路线是AJAX将logout / session-destroy请求返回给您的应用程序,并实际销毁会话服务器端。
答案 1 :(得分:1)
由于JavaScript无法控制asp.net会话,因此您必须调用使用会话管理的服务器端代码。
您可以通过像
这样的ajax部分调用某个页面$.get('~/ClearForm.aspx');
或您还可以重定向到具有会话销毁代码的特定页面。例如,在注销时,我们重定向到注销页面,这会破坏会话。