检查用户是否使用ASP.NET离开页面

时间:2015-04-02 09:53:33

标签: c# asp.net session

如果用户被重定向到某个页面,我需要清除存储在其中的一些会话数据。

我发现这篇文章,我可以看到可能的解决方案:https://stackoverflow.com/a/20283726/3917754

但这是一个问题 - 我必须输入页面名称,根据答案。因此输入所有页面名称我认为不是一个好的解决方案。

有任何想法如何检查用户是否离开页面以删除会话。它必须是服务器端代码。

1 个答案:

答案 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
        }
    }