ASP.NET中的会话超时警告

cdu*_*dub 13 .net c# asp.net iis session

我有一个asp.net站点,当会话达到超时时我需要弹出/层/警报(比方说10分钟).弹出窗口将说明您的帐户会话将由于不活动而显示,并且有一个用于继续会话的按钮或一个用于注销的按钮.

我在网上看到了不同的方法,但是处理这个问题的最佳/正确方法是什么?如果弹出窗口打开时间过长,是否需要额外超时?

Pra*_*ana 24

查看这篇文章,其中包含了您的需求所需的所有内容

警报会话在ASP.NET中超时

<script language="javascript" type="text/javascript">
       var sessionTimeoutWarning = 
    "<%= System.Configuration.ConfigurationSettings.AppSettings
    ["SessionWarning"].ToString()%>";
        var sessionTimeout = "<%= Session.Timeout %>";

        var sTimeout = parseInt(sessionTimeoutWarning) * 60 * 1000;
        setTimeout('SessionWarning()', sTimeout);

        function SessionWarning() {
var message = "Your session will expire in another " + 
    (parseInt(sessionTimeout) - parseInt(sessionTimeoutWarning)) + 
    " mins! Please Save the data before the session expires";
alert(message);
        }
</script>
Run Code Online (Sandbox Code Playgroud)


Stu*_*tLC 5

之前已解决此问题,例如 ASP.NET-基于web.config中的sessionState timeOut的Javascript timeOut警告

但是,由于以下原因,AFIAK并不是完全可靠的方法:

  • 如果用户使用同一会话打开了多个窗口,则一个窗口可能比另一个窗口更新,并且最早的窗口上的客户端会话超时将是陈旧的/错误的。
  • 如果您往返于服务器以查看当前会话的到期时间,则将其延长,从而无法达到弹出/警报的目的。