如何在javascript的帮助下杀死会话?

时间:2012-10-25 11:38:39

标签: c# javascript asp.net session

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

帮助感谢!

提前致谢

2 个答案:

答案 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');

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