.NET6自定義WebAPI過濾器
更新時間:2021年12月24日 08:47:11 作者:PrintY
這篇文章介紹了.NET6自定義WebAPI過濾器的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
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過濾器的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
asp.net 生成數(shù)字和字母組合的隨機數(shù)
asp.net下生成數(shù)字跟字母組合的隨機數(shù),提高驗證安全。2009-03-03
密碼綁定至密碼文本框中(TextMode設(shè)為Password)
一般情況之下TextBox的TextMode設(shè)為Password話,我們想在后臺(.cs)綁定一個值至此文本框,是無法實現(xiàn)的,如果一定要綁定值的話,該如何實現(xiàn)呢?,本文將告訴你實現(xiàn)方法,感興趣的朋友可以參考下2013-01-01
ASP.NET MVC中為DropDownListFor設(shè)置選中項的方法
這篇文章主要介紹了ASP.NET MVC中為DropDownListFor設(shè)置選中項的方法,需要的朋友可以參考下2014-10-10
使用pdfbox實現(xiàn)pdf文本提取和合并功能示例
這篇文章主要介紹了使用pdfbox實現(xiàn)pdf文本提取和合并功能示例,大家參考使用吧2014-01-01
ASP.NET設(shè)計網(wǎng)絡(luò)硬盤之刪除文件夾實現(xiàn)代碼
對于不再需要的文件/文件夾用戶有權(quán)限做刪除處理。這一節(jié)就介紹如何實現(xiàn)這一功能2012-10-10
MVC、MVP和MVVM分別是什么_動力節(jié)點Java學院整理
MVC,MVP 和 MVVM分別是什么?MVC(Model-View-Controller)是最常見的軟件架構(gòu)之一,業(yè)界有著廣泛應(yīng)用。它本身很容易理解,但是要講清楚,它與衍生的 MVP 和 MVVM 架構(gòu)的區(qū)別就不容易了。2017-08-08
GridView_RowUpdating取不到新值的解決方法
GridView_RowUpdating取不到新值的解決方法,需要的朋友可以參考一下2013-05-05
asp.net 該行已經(jīng)屬于另一個表錯誤的解決方法
從一個TABLE中取一行放到另一個TABLE里報錯: 該行已經(jīng)屬于另一個表。的解決辦法 用下面來個方法就OK了。2010-05-05

