.Net MVC中定義全域性過濾器及在Action中排除全域性過濾器
1,定義過濾器:
public class LoginJsonFilter : ActionFilterAttribute
{
public bool IsCheck { get; set; }//
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if(!IsCheck)
{
return;
}
User user = filterContext.RequestContext.HttpContext.Session["CurrentUser"] as User;
if (user == null)
{
if (IsAjax())
{
Result<bool> result = new Result<bool>();
result.Code = ResultCode.Failed;
result.Message = "未登入或者登入已經過期,請重新登入";
filterContext.Result = new JsonResult<Result<bool>>
{
Data = result,
ContentType = null,
ContentEncoding = null,
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
return;
}
else
{
filterContext.Result = new RedirectResult("/User/LoginView");
return;
}
}
else
{
base.OnActionExecuting(filterContext);
}
}
#region 是否是Ajax請求 + static bool IsAjax()
/// <summary>
/// 是否是Ajax請求
/// </summary>
/// <returns></returns>
public static bool IsAjax()
{
return HttpContext.Current.Request.Headers["X-Requested-With"] == "XMLHttpRequest";
}
#endregion
}
2,在App_Start資料夾下新增FilterConfig類
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new LoginJsonFilter(){ IsCheck = true});
}
}
3,在Global.asax中註冊全域性過濾器
protected void Application_Start()
{
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
}
4,如果某Action中不想使用該過濾器,如登入頁,則可以通過如下方式排除
[LoginJsonFilter(IsCheck =false)]
public ActionResult LoginView()
{
return View();
}
相關文章
- Vue定義全域性過濾器filterVue過濾器Filter
- .net core 登入全域性驗證過濾器過濾器
- .NetCore——全域性異常過濾器ExceptionFilterAttributeNetCore過濾器ExceptionFilter
- 使用路由閘道器的全域性過濾功能路由
- 在Asp.Net Core中使用ModelConvention實現全域性過濾器隔離ASP.NET過濾器
- ASP.Net MVC過濾器ASP.NETMVC過濾器
- spring boot 實現監聽器、過濾器、全域性異常處理Spring Boot過濾器
- 4、過濾器的使用及自定義過濾器過濾器
- .net core中的哪些過濾器過濾器
- 13.gateway中的過濾器的介紹以及自定義過濾器Gateway過濾器
- Vue中過濾器Vue過濾器
- 讓CNN跑得更快,騰訊優圖提出全域性和動態過濾器剪枝CNN過濾器
- django2中自定義過濾器Django過濾器
- 使用Winston替換NestJS專案中Nest內建的logger以及結合全域性異常過濾器JS過濾器
- 【ASP.NET Core】MVC過濾器:執行流程ASP.NETMVC過濾器
- 【ASP.NET Core】MVC過濾器:常見用法ASP.NETMVC過濾器
- JavaWeb 中 Filter過濾器JavaWebFilter過濾器
- .net core中的哪些過濾器 (Authorization篇)過濾器
- vue定義全域性變數和全域性方法Vue變數
- Spring Cloud Gateway中的過濾器工廠:重試過濾器SpringCloudGateway過濾器
- asp.net mvc中的使用者登入驗證過濾器ASP.NETMVC過濾器
- 直播軟體搭建,全域性過濾器(時間,年月日,一千加逗號處理)過濾器
- 過濾器過濾器
- ASP.Net Core 5.0 MVC中AOP思想的體現(五種過濾器)並結合專案案例說明過濾器的用法ASP.NETMVC過濾器
- Redis 中的布隆過濾器Redis過濾器
- spring中的過濾器與攔截器Spring過濾器
- 直播平臺製作,vue-全域性過濾器(時間,年月日,一千加逗號處理)Vue過濾器
- 點雲濾波器與過濾器過濾器
- Vue過濾器Vue過濾器
- DataV過濾器過濾器
- Filter過濾器Filter過濾器
- hbase過濾器過濾器
- vue 過濾器Vue過濾器
- NetCore過濾器NetCore過濾器
- 代理過濾器過濾器
- CAN過濾器過濾器
- Xor過濾器:比布隆Bloom過濾器更快,更小過濾器OOM
- [Vue] 如何定義全域性的方法?Vue