Asp.net mvc 3 空闲超时似乎会导致用于处理会话超时的代码循环

Asp.net mvc 3 空闲超时似乎会导致用于处理会话超时的代码循环,asp.net-mvc-3,iis-7,Asp.net Mvc 3,Iis 7,我正在使用会话超时代码(代码来自链接)。这段代码通常可以正常工作,除非用户已经等待了足够长的时间来点击IIS空闲时间(默认为20分钟)。一旦到达Idletimeout,因为w3wp进程不存在,这个对Home/Login的重定向调用似乎进入了一个302s的长循环。任何关于如何更好地处理这种情况的想法重定向将导致另一个请求,因此如果该请求是针对登录页面的,您必须让它通过,而无需执行另一个重定向 伪代码: if (current_request_url =! "~/Home/Login") { c

我正在使用会话超时代码(代码来自链接)。这段代码通常可以正常工作,除非用户已经等待了足够长的时间来点击IIS空闲时间(默认为20分钟)。一旦到达Idletimeout,因为w3wp进程不存在,这个对Home/Login的重定向调用似乎进入了一个302s的长循环。任何关于如何更好地处理这种情况的想法

重定向将导致另一个请求,因此如果该请求是针对登录页面的,您必须让它通过,而无需执行另一个重定向

伪代码:

if (current_request_url =! "~/Home/Login") {
  ctx.Response.Redirect ( "~/Home/Login" );
}

确保此筛选器未应用于您的登录操作

不确定我是否完全理解它,您能否用示例更新您的答案,说明如何执行此操作?嗯,目前已通过Global.asax在RegisterGlobalFilters方法中注册此筛选器来应用此筛选器。我是否需要将该属性应用于Individual controller,或者是否有更简单的方法?使用guffas示例,或者使您的属性更好一点,并具有一个exclude属性,这样您就不必硬编码名称,例如: