我製作了一個過濾器,它將會話變量的值設爲null。 如果它沒有值,那麼我重定向到登錄頁面。 該過濾器的代碼,如果喜歡 -重定向到特定控制器/操作方法從操作篩選器屬性
public class AuthorizerActionFilter : ActionFilterAttribute , IActionFilter
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
if (HttpContext.Current.Session != null)
{
if (HttpContext.Current.Session["UserInfo"] == null)
{
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary {{ "Controller", "UserLogin" },
{ "Action", "UserLogin" } });
}
}
}
base.OnActionExecuting(filterContext);
}
}
我註冊這個過濾器進入的Global.asax喜歡但─
GlobalFilters.Filters.Add(new AuthorizerActionFilter());
在我的應用的每個請求首先進入到這個過濾器。 當我第一次運行我的應用程序時,此過濾器運行兩次並打開登錄頁面,但它沒有從過濾器重定向,因爲它不是ajax請求。 我填寫登錄憑證,當我點擊登錄時,ajax請求首先進入此過濾器。 這是我的問題,這次沒有任何事情發生。我的意思是當我調試AuthorizerActionFilter過濾器代碼時,這個過濾器一次又一次地運行。爲什麼會發生在重定向Controller-Action時是否有任何問題?
當有一個ajax調用只有那麼我必須檢查有關會議有一定的價值。如果它沒有值,那麼我必須重定向到用戶登錄控制器和用戶登錄操作。 –
看看我更新的答案,它處理ajax請求場景 – Shyju
是不是可以直接從過濾器重定向任何控制器/動作? –