FormsAuthentication.SignOut();
Session.RemoveAll();
return RedirectToAction("Login", "Home");
当用户空闲时间是在MVC4项目5分钟?
FormsAuthentication.SignOut();
Session.RemoveAll();
return RedirectToAction("Login", "Home");
当用户空闲时间是在MVC4项目5分钟?
根据您的闲置定义,貌似可以使用FormsAuthentication
类的都SlidingExpiration
和Timeout
财产做。
将超时设置为5分钟,将SlidingExpiration设置为true,您应该很好。
您应该在IIS级别执行此操作。
在IIS中,您可以随时设置会话超时。
本文TechNet上的解释如何做到这一点: http://technet.microsoft.com/en-us/library/cc725820(v=ws.10).aspx
注意:一旦他采取另一个行动(当会话结束)
用户将只被重定向到登录页面如果您希望登录的内容在5分钟后也应该隐藏,那么您可以将Kenneths答案与每页上的小javascript结合起来。
setTimeout(function() {
// iis will handle the rest.
location.reload();
}, 300000);
如果你这样做,它必须由服务器启动。而且,用户不会喜欢这种表单输入。 – CodeCaster
什么是必须由服务器启动的“它”?表单身份验证本身将注销重新加载并重定向到loginurl(如果需要)并保留returnulr。用户不喜欢什么?当他们闲置时。他们的页面会自动注销?个人数据呢?你是否希望任何其他人看到你离开的页面并忘记注销? – maxlego
“it”我的意思是服务器注销。一个页面不应该在设置的超时后重新加载,因为正如我所说的,用户将失去输入。例如,它可以轮询服务器用户是否仍然登录,如果没有,则在页面上放置“请再次登录”覆盖。 – CodeCaster
5分钟真的很短。 – Bart
您还需要定义什么是“闲置”?五分钟没有任何要求? –
@AdrianGodong耶,五分钟没有任何要求。 – user951581