我有一個客戶過濾器屬性來檢查我的.Net MVC應用程序中的過期會話,它可以在標準html表單上正常工作。但是,當我將該屬性應用於由Ajax表單調用的操作並且會話過期時,它會將登錄頁面(filter屬性重定向上下文的位置)重新加載到ajax更新容器中。有誰知道如何讓整個頁面重定向到登錄頁面的方式,如果會話過期了,當ajax調用或有人知道如何處理這種情況更優雅一點?提前致謝。.net mvc&ajax表單 - 如何處理會話過期
public class SessionExpiredFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpContext ctx = HttpContext.Current;
// check if session is supported
if (ctx.Session != null)
{
// check if a new session id was generated
if (ctx.Session.IsNewSession)
{
// If it says it is a new session, but an existing cookie exists, then it must
// have timed out
string sessionCookie = ctx.Request.Headers["Cookie"];
if ((null != sessionCookie) && (sessionCookie.IndexOf("ASP.NET_SessionId") >= 0))
{
//SessionHelper.AddPageMessage("message", "Your session has expired. Please login to continue");
ctx.Response.Redirect("~/Account/Logon");
}
}
}
base.OnActionExecuting(filterContext);
}
}
我正在尋求這個答案。 – CedricB 2010-11-27 22:30:07