ASP.NET自动注销

我和另外4个人一起做团队项目。 我们正在使用嵌入式c#在MVC4中设计ASP.NET中的作业信息亭。

我正在努力让系统在闲置10分钟后将用户注销。 我需要一些帮助来解决如何开始编写系统记录用户的方法。

如果您不使用“Windows身份validation”,这至少取决于您可以通过web.config控制的会话超时:

     

由于大多数技术都以某种方式依赖会话,因此在大多数情况下都可以使用

您正在寻找的答案是AliK建议的答案。 您希望在web.config中设置自动超时,以便它会在一定的空闲时间后自动注销用户并将其重定向到登录页面。

     

如果我没记错,超时值以分钟为单位,而不是秒或毫秒。 滑动Expiration也意味着每次在网站上执行操作时都会重置超时。 因此,如果你有5分钟的超时时间并且在点击网站上的按钮之前闲置4点,那么在点击按钮后你会得到一个新的5分钟超时。

如果您使用FormsAuthentication,我就是这样做的:

控制器动作:

 public ActionResult CheckLogin() { if (Request.Cookies["CookieName"] == null) return Json(0, JsonRequestBehavior.AllowGet); var cookie = Request.Cookies["CookieName"].Value; var ticket = FormsAuthentication.Decrypt(cookie); var secondsRemaining = Math.Round((ticket.Expiration - DateTime.Now).TotalSeconds, 0); return Json(secondsRemaining, JsonRequestBehavior.AllowGet); } 

每页或布局页面上的Jquery:

  

如果您需要让它们自动注销,请从Linus Caldwell建议设置web.config会话超时开始。 他的示例显示了30分钟,因此您只需将其更改为10.但用户不会知道他们已注销,直到他们实际尝试请求某些服务器资源。 为了让这种情况自动发生,你可以采取几种方式。 这两种方式都涉及在超时期限到期后自动刷新页面。 一种方法是使用javascript计时器。 另一种是为每个页面添加刷新标题。

  

另一种方式是在你的global.asax中:

 protected void Application_BeginRequest() { Response.Headers.Add("Refresh", Convert.ToString(Session.Timeout * 11)); } 

如果通过Idle你意味着没有来自用户的鼠标和键盘事件,并且我正确理解你的要求,你应该检查jquery-idleTimeout插件。

另一个好的是jQuery idleTimer插件

希望这可以帮助。