Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果他关闭浏览器,ASP.net会话将被销毁_Asp.net - Fatal编程技术网

如果他关闭浏览器,ASP.net会话将被销毁

如果他关闭浏览器,ASP.net会话将被销毁,asp.net,Asp.net,我有一个网站。记录用户后,将加载会话详细信息。 当用户注销时,会话详细信息将被放弃。(通过单击注销菜单注销) 当用户简单地关闭浏览器时,如何销毁会话 下一次,它将使用相同的会话数据进行日志记录。我需要避免这种情况。您可以将会话配置为更快超时 在web.config中: < sessionState ... timeout="5" /> 您可以将会话配置为更快超时 在web.config中: < sessionState ... timeout="5" /> 作为注

我有一个网站。记录用户后,将加载会话详细信息。 当用户注销时,会话详细信息将被放弃。(通过单击注销菜单注销) 当用户简单地关闭浏览器时,如何销毁会话


下一次,它将使用相同的会话数据进行日志记录。我需要避免这种情况。

您可以将会话配置为更快超时

在web.config中:

< sessionState ... timeout="5" />


您可以将会话配置为更快超时

在web.config中:

< sessionState ... timeout="5" />


作为注销处理的一部分,调用Session.Clear()清除键/值对:


作为注销处理的一部分,调用Session.Clear()清除键/值对:


您基本上有两种选择:

  • 将会话cookie的超时时间设置为1分钟,并每30秒发送一次“保持活动”AJAX请求
  • 不要使用cookie,只需在查询中传递会话参数

每种解决方案都可以在99%的情况下工作,如果您将它们结合起来,您应该可以在99.99%的情况下工作。取决于此行为对您的重要性。

您基本上有两种选择:

  • 将会话cookie的超时时间设置为1分钟,并每30秒发送一次“保持活动”AJAX请求
  • 不要使用cookie,只需在查询中传递会话参数

每种解决方案都可以在99%的情况下工作,如果您将它们结合起来,您应该可以在99.99%的情况下工作。取决于此行为对您的重要性。

您可以使用Page.OnUnload javascript事件向调用Session.放弃()的页面发出请求。这将导致用户在离开您的站点时删除会话。

您可以使用Page.OnUnload javascript事件向调用session.放弃()的页面发出请求。这将导致用户在离开您的站点时删除会话。

听起来您正在使用持久cookie存储身份验证票证。尝试将SetAuthCookie方法的第二个参数(createPersistentCookie)设置为false,即FormsAuthentication.SetAuthCookie(“myusername”,false)

听起来您正在使用持久cookie存储身份验证票证。尝试将SetAuthCookie方法的第二个参数(createPersistentCookie)设置为false,即FormsAuthentication.SetAuthCookie(“myusername”,false)

这里有一个有趣的细节。

这里有一个有趣的细节。

Page.Unload()不是在用户离开站点时调用的,而是在引擎完成渲染后,在HTML发送到浏览器之前调用的。一旦发生这种情况,就无法通过访问该页面

我知道在PHP中,可以使用AJAX使用javascript调用PHP函数。我不知道这在ASP.Net中是否可行,或者是否适用于会话。

Page.Unload()在用户离开网站时不会调用,而是在引擎完成渲染后,在HTML发送到浏览器之前调用。一旦发生这种情况,就无法通过访问该页面

try
    {
        Session["Admin"] = null;
        Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Cache.SetNoStore();
        Session.Abandon();
        Session.Clear();                   
        Page.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Redirect("Dep_NewUserCreate.aspx");


    }
    catch(Exception ExLink)
    {
        Response.Redirect("Dep_NewUserCreate.aspx");
    }

我知道在PHP中,可以使用AJAX使用javascript调用PHP函数。我不知道这在ASP.Net中是否可行,或者是否适用于会话。

这个问题不够清晰,表面上看,你是在问当某人关闭浏览器窗口时如何注销,而你似乎在问他们注销时如何删除会话数据。这个问题表面上看不够清晰,当某人简单地关闭浏览器窗口时,您似乎在询问如何注销,而当他们注销时,您似乎在询问如何删除会话数据。
try
    {
        Session["Admin"] = null;
        Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Cache.SetNoStore();
        Session.Abandon();
        Session.Clear();                   
        Page.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Redirect("Dep_NewUserCreate.aspx");


    }
    catch(Exception ExLink)
    {
        Response.Redirect("Dep_NewUserCreate.aspx");
    }