.net core 增加IP过滤

利用IPAddressRange包实现IP过滤

1、安装nuget上的 IPAddressRange 包

2、继承ActionFilterAttribute

复制代码
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc.Authorization;
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.Extensions.Logging;
 
namespace ClientIpAspNetCore.Filters
{
    public class ClientIdCheckFilter : ActionFilterAttribute
    {
        private readonly ILogger _logger;
 
        public ClientIdCheckFilter(ILoggerFactory loggerFactory)
        {
            _logger = loggerFactory.CreateLogger("ClassConsoleLogActionOneFilter");
        }
 
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            _logger.LogInformation($"Remote IpAddress: {context.HttpContext.Connection.RemoteIpAddress}");
 
            // TODO implement some business logic for this...
 
            base.OnActionExecuting(context);
        }
    }
}
复制代码

3、ActionFilter 可以添加到服务中。

public void ConfigureServices(IServiceCollection services)
{
    services.AddScoped<ClientIdCheckFilter>();
 
    services.AddMvc();
}

4、作用根据需要专门用于任何控制器

[ServiceFilter(typeof(ClientIdCheckFilter))]
[Route("api/[controller]")]
public class ValuesController : Controller

来自:https://damienbod.com/2016/12/18/implementing-a-client-white-list-using-asp-net-core-middleware/

 

posted @   丁焕轩  阅读(192)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示