我试图使用Actionfilterattribute和Filter config中的onexecuting函数处理会话超时问题,并在所有控制器之上调用了该属性。在会话超时后执行应用程序后,页面中没有任何反应。相反,如果我在应用程序上单击某些内容,它将把我重定向到注销页面。我需要自动进行此操作。该页面应自动刷新,如果会话过期,则重定向到注销页面。
我的过滤器配置代码如下:
public class SessionTimeoutAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpContext context = HttpContext.Current;
if (context.Session != null)
{
if (context.Session.IsNewSession)
{
string sessionCookie = context.Request.Headers["Cookie"];
if (sessionCookie != null)
{
FormsAuthentication.SignOut();
string redirectTo = "";
if (!string.IsNullOrEmpty(context.Request.RawUrl))
{
HttpContext.Current.Session.Abandon();
redirectTo = string.Format("~/Login/Logout", HttpUtility.UrlEncode(context.Request.RawUrl));
//filterContext.Result = new RedirectResult(redirectTo);
return;
}
}
}
}
base.OnActionExecuting(filterContext);
}
}
Web.config也设置为:
<sessionState mode="InProc" timeout="2" />
请有人帮我...我想念什么?