Ядро Asp.Net позволяет диапазоны IP в CORS - PullRequest
3 голосов
/ 28 марта 2019

Я использую стандартное промежуточное ПО ASP.NET Core и хотел бы разрешить диапазоны IP-адресов (в моем случае я ищу диапазоны частных IP-адресов) для упрощения разработки.

В настоящее времямое промежуточное ПО выглядит так:

app.UseCors(builder =>
    builder.WithOrigins("http://localhost:8080", "https://test-env.com")
           .AllowAnyHeader()
           .AllowAnyMethod());

Но теперь я хотел бы добавить диапазон IP-адресов, например 172.16.0.0–172.31.255.255, в нотации CIDR 172.16.0.0/12.Как мне это сделать?

Я попробовал следующее, но ни один из них не работает:

  • http://172.16.0.0/12:4200
  • http://172.16.*.*:4200
  • http://172.16.*:4200

1 Ответ

2 голосов
/ 28 марта 2019

В ASP.NET Core 2.0 появилась возможность получить полный контроль над проверкой происхождения, используя метод SetIsOriginAllowed.Вот пример того, как это может быть настроено:

app.UseCors(builder =>
    builder.SetIsOriginAllowed(MyIsOriginAllowed) 
           .AllowAnyHeader()
           .AllowAnyMethod());

// ...

private static bool MyIsOriginAllowed(string origin)
{
    var isAllowed = false;

    // Your logic.

    return isAllowed;
}

Обратный вызов, переданный в SetIsOriginAllowed, имеет тип Func<string, bool> и, как ожидается, вернет true для разрешенных источников и false в противном случае.

С точки зрения проверки по самому диапазону может быть полезен другой ответ: Как узнать, принадлежит ли IP-адрес внутри диапазона IP-адресов, используя нотацию CIDR? .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...