2010-10-21 28 views
6

我有这个在我的webconfig文件显示...如何实现会话超时页面使用asp.net mvc的

<authentication mode="Forms"> 
     <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
    </authentication> 

超时2880意味着它的多少秒或最低要采取?

如何显示时,我的会话超时我需要显示SessionTimeout.aspx网页...

感谢

回答

4

您可以通过操作筛选器识别MVC中的会话超时。这里是a question我问了这个问题。列出的时间在几分钟内。 (查看链接评论)

+1

根据MSDN,'timeout' *指定整数分钟*的时间。 http://msdn.microsoft.com/en-us/library/1d3t3c61(v=VS.80).aspx – bzlm 2010-10-21 18:40:54

+0

@bzlm,谢谢澄清,我不久前停止使用会话超时。将更新答案。 – 2010-10-21 18:43:03

+1

值2880应该提示。为什么默认值是48分钟? :) – bzlm 2010-10-21 18:51:32

-1

使JavaScript和当达到超时重定向用户的计数器。

编辑:正如我理解你的问题,你想重定向到页面时,用户已经太长时间不活动是的?

+0

THanks Joakim,你可以请在代码中解释我,如果你有我完全新的这种事情,如何使用JavaScript实现计数? – kumar 2010-10-21 18:32:00

+0

在问题的示例中,会话超时为2天。即使是一个非常酷的网页,很长一段时间都不活跃。 :) – bzlm 2010-10-21 18:53:16

+0

我同意这是一个很长的超时,但问题是关于客户端重定向在我眼中,而不是服务器重定向时,已达到登录超时。 – Joakim 2010-10-21 19:18:38

1

正如Gabriel所说,使用FormsAuthentication时,超时将发生在幕后,这意味着如果用户在时间到期后访问页面,系统会要求您再次登录。

我会建议寻找添加slidingExpiration =“true”到您的web.config。

此外,您可能需要实施自动注销,以便在达到超时后可能不会将敏感数据暴露出来。

我这样做是通过调用window.setTimeout(myFunction,30000)每个页面加载,如果用户被认证。该函数使用JQuery ajax实现一个操作,该操作返回会话过期之前剩余的时间量。一旦时间量低于零,您可以通过JavaScript重定向到注销操作。否则,该方法只需再次调用window.setTimeout(myFunction,30000),以便继续检查。

您可以通过添加警告消息并允许用户单击使用JQuery ajax按钮来启动重置计时器的操作。