创建不影响会话超时的Action

时间:2013-04-02 15:54:51

标签: asp.net-mvc-3 session session-timeout

在我的ASP.NET MVC 3应用程序中,我有一个计时器,每个时间段执行一次控制器操作。这样我的会话永远不会超时...

我不希望此操作在每次执行时重置会话计时器。我尝试通过创建自定义属性[AllowAnonymous]来完成此操作,例如此链接

http://blogs.msdn.com/b/rickandy/archive/2011/05/02/securing-your-asp-net-mvc-3-application.aspx

但是这样,任何用户都可以在不登录的情况下访问此操作,这不是我想要的。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以在web.config中禁用会话的滑动过期:

<forms slidingExpiration="false" loginUrl="~/Account/LogOn" timeout="2800" />

这样,表单身份验证cookie将不会续订,并且故障单仅在固定的时间内有效。

如果您只想为某些请求禁用滑动过期,则可以查看following answer。它有点hacky,因为票证更新代码深埋在FormsAuthenticationModule中。

答案 1 :(得分:0)

如何创建通过子域访问的其他应用程序?我认为这不仅是最简单,也是最干净的方式。

如果您使用任何其他方式而另一个开发人员需要稍后支持它,那么根据解决方案的复杂性,如果需要以某种方式更改它,则执行此操作的成本可能会更高。