.NET6自定義WebAPI過濾器
更新時間:2021年12月24日 08:47:11 作者:PrintY
這篇文章介紹了.NET6自定義WebAPI過濾器的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
1、上代碼
/// <summary>
/// API白名單過濾器
/// </summary>
public class APIFilter : ActionFilterAttribute
{
/// <summary>
/// 控制器中加了該屬性的方法中代碼執(zhí)行之前該方法。
/// 所以可以用做權(quán)限校驗。
/// </summary>
/// <param name="context"></param>
public override void OnActionExecuting(ActionExecutingContext context)
{
var vistorIp = context.HttpContext.Connection.RemoteIpAddress.ToString_();
var whiteIp = AppsettingHelper.Get("WhiteIP");
if (!string.IsNullOrEmpty(whiteIp))
{
List<string> whiteIpList = whiteIp.Split(',').ToList();
if (!whiteIpList.Contains("*") && !whiteIpList.Contains(vistorIp))
{
context.HttpContext.Response.StatusCode = 401;
context.Result = new JsonResult(new { code = 401, msg = "非法IP" });
}
}
base.OnActionExecuting(context);
}
/// <summary>
/// 控制器中加了該屬性的方法執(zhí)行完成后才會來執(zhí)行該方法。
/// </summary>
/// <param name="context"></param>
public override void OnActionExecuted(ActionExecutedContext context)
{
base.OnActionExecuted(context);
}
/// <summary>
/// 控制器中加了該屬性的方法執(zhí)行完成后才會來執(zhí)行該方法。比OnActionExecuted()方法還晚執(zhí)行。
/// </summary>
/// <param name="context"></param>
/// <param name="next"></param>
/// <returns></returns>
public override Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next)
{
return base.OnResultExecutionAsync(context, next);
}
}
2、使用
[Route("api/[controller]/[action]")]
[ApiController]
[APIFilter]
public class YangController : BaseController
到此這篇關(guān)于.NET6自定義WebAPI過濾器的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
asp.net BackgroundWorker之在后臺下載文件
下載文件是常見任務(wù),通常情況下,最好以單獨的線程來運行這項可能很耗時的操作。使用 BackgroundWorker 組件可以用非常少的代碼完成此任務(wù)2011-12-12
asp.net request.PathInfo實現(xiàn)的url重寫
最近對在開始研究url重寫,對重寫的原理以及重寫之后引起的性能問題是研究的重點,研究過程中發(fā)現(xiàn)了一種輕便的“url重寫方案”2009-04-04
asp.net點選驗證碼實現(xiàn)思路分享 (附demo)
這篇文章主要介紹了asp.net點選驗證碼實現(xiàn)思路分享 (附demo),具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-01-01

