-3

您对如何仅在 asp.net 中使浏览器刷新按钮上的会话过期有任何想法吗?谢谢。您还可以在 C# 或 Js 或 Jquery 中提供您的响应...

4

2 回答 2

1

在 c# 中使用:

Session.Abandon();

这将清除所有会话并分配新的会话密钥,并且Session_OnEnd()还将触发事件。

检查页面是否刷新的逻辑

如果您想检查页面是否刷新,那么您可以使用 cookie。

首次访问页面时存储 cookie。刷新时,检查您的 cookie 是否存在。

请参阅:检查页面是否在 Javascript 中重新加载或刷新

基于此,您可以在刷新页面时应用清除会话。

这是供参考的代码:

$(document).ready(function() {
  if(document.cookie.indexOf('mycookie')==-1) {
    // this mean cookie doesn't exist and user visited first time
    document.cookie = 'mycookie=1';//set the cookie to check for next time
  }
  else {
    // cookie is not null i.e. page is refreshed, 
    //So, make an ajax call to handler and use Session.Abandon() on handler in c# code.
  }
});

此外,当浏览器关闭时,cookie 将被自动清除。

于 2013-06-19T12:49:36.230 回答
1
//this will solve the postback part (button click). 
//The refresh you should handle with querystring params
protected void Page_Load(object sender, EventArgs e) 
{
  if(Page.IsPostBack)
     Session.Abandon();
}
于 2013-06-19T12:51:46.687 回答