【问题标题】:Idle timeout seem to cause a loop for the code used for handling session timeouts空闲超时似乎导致用于处理会话超时的代码循环
【发布时间】:2012-02-13 23:04:50
【问题描述】:

我正在使用会话超时代码(代码来自this 链接)。此代码通常可以正常工作,除非用户等待的时间足够长,以使 IIS 空闲超时(默认为 20 分钟)。一旦达到 Idletimeout,因为 w3wp 进程不存在,看起来这个对 Home/Login 的 Redirect 调用进入了一个 302s 的长循环。知道如何更好地处理这种情况

【问题讨论】:

    标签: asp.net-mvc-3 iis-7


    【解决方案1】:

    确保此过滤器未应用于您的登录操作

    【讨论】:

    • hmmm,目前动作过滤器是通过 Global.asax 应用的,方法是在 RegisterGlobalFilters 方法中注册它。我需要将该属性应用于单个控制器还是有更简单的方法?
    • 使用 guffas 示例或使您的属性更好一些并具有 exclude 属性,因此您不必硬编码名称,例如:stackoverflow.com/questions/4684150/…
    【解决方案2】:

    重定向会引起另一个请求,所以如果请求是针对登录页面的,你必须让它通过而不做另一个重定向。

    伪代码:

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

    【讨论】:

    • 不确定我是否完全理解,你能用例子更新你的答案吗?
    猜你喜欢
    • 2013-04-27
    • 1970-01-01
    • 2012-02-17
    • 2012-10-11
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    相关资源
    最近更新 更多