Простой способ проверить ключ API в Web API ASP.NET Core - PullRequest
0 голосов
/ 03 декабря 2018

Я бы хотел просто проверить ключ Api, отправленный в заголовке авторизации, прежде чем разрешить попадание на определенные конечные точки веб-API.Ради этого вопроса давайте предположим, что ApiKey равен 12345.Я просто хочу проверить значение этого ключа API до достижения определенного метода действия.Я не могу понять, вызывает ли это пользовательский AuthorizeAttribute или фильтр действий.

1 Ответ

0 голосов
/ 03 декабря 2018

Просто я делаю запрос GET с заголовком Authorization: apiKey 12345

Реализация атрибута авторизации выглядит следующим образом:

public class AuthorizationFilterAttribute : Attribute, IAuthorizationFilter
{
    public void OnAuthorization(AuthorizationFilterContext context)
    {
        var apiKey = context.HttpContext.Request.Headers["Authorization"];

        if (apiKey.Any())
        {
            // this would be your business
            var subStrings = apiKey.ToString().Split(" ");
            if (!(subStrings.Length >= 2 && subStrings[0] == "apiKey" && subStrings[1].Any()))
            {
                context.Result = new NotFoundResult();
            }
        }
        else
        {
            context.Result = new NotFoundResult();
        }
    }
}

В этом примере кода apiKey равно subStrings[1]

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