Как включить авторизацию API-KEY для пользовательского интерфейса swagger, созданного для ASP. NET WEB API - PullRequest
0 голосов
/ 07 мая 2020

Я использую swagger. net для создания документации api и хочу включить аутентификацию API-KEY для пользовательского интерфейса swagger. Пока я пробовал это.

public class SwaggerConfig
    {

        public static void Register()
        {
            var thisAssembly = typeof(SwaggerConfig).Assembly;

            GlobalConfiguration.Configuration
                .EnableSwagger(c =>
                    {
 c.ApiKey("apiKey", "header", "API Key Authentication", typeof(KeyAuthorizeAttribute));
                      }
}
}

Файл KeyAuthorizeAttribute.cs содержит:

  public class KeyAuthorizeAttribute : AuthorizeAttribute
        {
            static string _password = null;

            private string Password
            {
                get
                {
                    if (string.IsNullOrEmpty(_password))
                        _password = ConfigurationManager.AppSettings["PASSWORD"];
                    return _password;
                }
            }



        protected override bool IsAuthorized(HttpActionContext actionContext)
            {
                IEnumerable<string> apiKey;
                if (actionContext.Request.Headers.TryGetValues("apiKey", out apiKey))
                {
                    return apiKey.First() == Password;
                }
                return false;
            }

    }

ConfigurationManager.AppSettings ["ПАРОЛЬ"] в файле Web.config установлено значение 12345

enter image description here

Я могу получить кнопку авторизации, но она принимает все случайные строки, числа и авторизацию, чем взятие пароля, установленного в файле web.config.

Предположим, пользователь вводит ключ api как «suyguhuus» (любая случайная строка / числа), он должен быть неавторизованным и должен принимать только значение «ПАРОЛЬ», определенное в Web.config, и позволять пользователю связываться с его API только в том случае, если пользователь авторизован.

Кто-нибудь может помочь с авторизацией вышеупомянутого варианта использования.

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