利用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/

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2020-11-12
  • 2021-07-23
  • 2021-11-02
  • 2021-09-12
  • 2022-12-23
  • 2021-08-25
猜你喜欢
  • 2021-08-13
  • 2022-02-18
  • 2022-01-17
  • 2021-07-28
  • 2021-09-21
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案