2015-11-05 112 views
1

我期待加入会话超时警告对话框前15分钟会弹出expires.The指示的会议即将到期,这样用户可以继续/延长会话或者他也可以退出会话超时警告对话框MVC

我怎样才能做到这一点。

我试图研究如何做到这一点,但我没有找到任何帮助我的东西。

我意识到我需要这样的事,但我不知道一个过滤器将如何帮助

Redirect to specific page after session expires (MVC4)

还我看着http://www.codeproject.com/Articles/227382/Alert-Session-Time-out-in-ASP-Net 但我没有道理给我。

我看着超时dialog.js我如何能在MVC

帮助使用这将是apreciated

回答

3

你应该试试这个

@{ 
     var conf = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath); 
     var section = (System.Web.Configuration.SessionStateSection)conf.GetSection("system.web/sessionState"); 
     string timeout = section.Timeout.TotalMinutes.ToString(); 
} 

<script> 
$(document).ready(function() { 

       var time = @timeout * 1000 * 60; 
       var timeout; 
       var isLogout = false; 

       timeout = setTimeout(function() { 
        //Things you need to do 
         isLogout = true; 

       }, time); 

       $(document).on('click', function() { 
        if (!isLogout) { 
         clearTimeout(timeout); 
         timeout = setTimeout(function() { 
          //Things you need to do 
          isLogout = true; 
         }, time); 
        } 
       }); 
      }); 
</script> 
+0

string timeout = Session.Timeout.ToString(); 或var timeout = Session.Timeout * 1000 * 60; –

+0

@JohnTolar'字符串超时值'是一个c#变量 – Jigarb1992

1

How to know when OWIN cookie will expire?

看起来像你说的是什么?让我知道如果它不是。

+0

不,我想希望超时dialog.js一样。但我不知道如何将其纳入我的项目。 – DotNetBeginner

+0

是的,所以使用上面的代码,通过UTC时间直到您的视图模型到期,或者每隔一段时间传递一次JS调用。然后,当令牌到期之前剩余“x”时间量时,弹出一个模式或其他内容; EX:你可以使用ajax调用一个控制器函数来获得令牌到期的时间。一旦这个时间返回到JS你可以使用库。 – Pandamonium99

+0

我明白,但我不使用OWIN我正在使用表单身份验证。它将如何工作?它会起作用吗? – DotNetBeginner