C# 应用程序在空闲10分钟后注销用户

C# 应用程序在空闲10分钟后注销用户,c#,asp.net,asp.net-mvc-4,timeout,forms-authentication,C#,Asp.net,Asp.net Mvc 4,Timeout,Forms Authentication,我正在和另外4个人做一个小组项目。我们正在MVC4的ASP.NET中设计一个带有嵌入式c#和Razor的求职亭。它从服务器生成动态网页。我们正在Windows 7环境中使用Visual Studio 2010 SP1和Microsoft SQL Server 2008 R2 SP1 如果用户空闲10分钟,我正在让系统注销他们。我需要一些帮助,关于如何开始编码一种方式,让系统注销用户。我基本上是编写一个控制器来编辑组中其他成员所做的视图(网页)。这样,计时器将在所有视图页面上启动 您可以使用Web

我正在和另外4个人做一个小组项目。我们正在MVC4的ASP.NET中设计一个带有嵌入式c#和Razor的求职亭。它从服务器生成动态网页。我们正在Windows 7环境中使用Visual Studio 2010 SP1和Microsoft SQL Server 2008 R2 SP1


如果用户空闲10分钟,我正在让系统注销他们。我需要一些帮助,关于如何开始编码一种方式,让系统注销用户。我基本上是编写一个控制器来编辑组中其他成员所做的视图(网页)。这样,计时器将在所有视图页面上启动

您可以使用Web.config中的以下条目控制会话,例如:

<configuration>
    <system.web>
        <sessionState timeout="2" />
    </system.web>
</configuration>

您通常会使用滑动窗口在FormsAuthentication票据上设置过期值


如果您使用的是MVC的默认
[Authorize]
属性,并且使用的是WebSecurity,那么这应该会自动工作。如果您正在颁发自己的表单身份验证票证,则可能必须显式设置这些值


其他人提到了会话超时,但要注意两件事。首先,您不应该执行任何与会话相关的身份验证,第二个会话超时和身份验证超时是两件不同的事情,尽管您可能希望保持它们的同步。但滑动窗口更难做到这一点。

您最好保存最后一个活动
DateTime
stamp,并全局定义活动超时为
TimeSpan
。在每次授权时,您都会更新上一个活动,除非他在时间窗口之外,如果用户超时,您可以将他定义为已注销。这就避免了对(imo脏)计时器的需要。
<authentication mode="Forms">
   <forms name=".ASPXAUTH" loginUrl="~/Account/Login" protection="All" 
      timeout="10" path="/" slidingExpiration="true" />
</authentication>