如果用户被重定向到某个页面,我需要清除存储在其中的一些会话数据。
我发现这篇文章,我可以看到可能的解决方案:https://stackoverflow.com/a/20283726/3917754
但这是一个问题 - 我必须输入页面名称,根据答案。因此输入所有页面名称我认为不是一个好的解决方案。
有任何想法如何检查用户是否离开页面以删除会话。它必须是服务器端代码。
答案 0 :(得分:0)
你也可以这样做:
在每个页面上,定义以下脚本代码(或在母版页中定义):
window.onbeforeunload = confirmExit;
function confirmExit() {
var url = '<%: ResolveUrl("~/DeleteSessionAjaxHandler.ashx") %>'
$.ajax({
url: url,
type: "POST",
async: false,
data: {},
success: function(data) {}
});
}
创建DeleteSessionAjaxHandler.ashx
处理程序并在里面删除会话。
public class DeletedSessionAjaxHandler: IHttpHandler, IRequiresSessionState
{
public override void ProcessRequest(HttpContext context)
{
//Session delete code
}
}