Заголовок авторизации Swagger не виден в проекте ASP.NET Core - PullRequest
0 голосов
/ 11 декабря 2018

Я включил пакет swagger ( Swashbuckle.AspNetCore ) для моего основного проекта asp.net.Пакет swagger имеет последнюю версию 4.0.1 .Я попытался включить кнопку «Авторизовать» в пользовательском интерфейсе сваггера, используя следующий код:

// Register the Swagger generator
services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new Info { Title = "Sample API", Description = "Swagger Sample API", Version = "v1" });
    c.AddSecurityDefinition("Bearer", new ApiKeyScheme { In = "header", Description = "Please Enter Authentication Token", Name = "Authorization", Type = "SampleApiKey" });
    c.AddSecurityRequirement(new Dictionary<string, IEnumerable<string>> {
        { "Bearer", Enumerable.Empty<string>() },
    });
});

Кнопка может быть видна в пользовательском интерфейсе сваггера, но когда я щелкнул по кнопке, она показывает ошибку ниже:

enter image description here

Может кто-нибудь указать мне, в чем здесь проблема?

1 Ответ

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

Ваша строка должна быть:

c.AddSecurityDefinition("Bearer", new ApiKeyScheme { 
        In = "header",
        Description = "Please Enter Authentication Token",
        Name = "Authorization", Type = "apiKey"
});

, поскольку Тип трансформируется в Swashbuckle как шаблон стратегии.Возможные значения:

  • basic
  • apiKey
  • oauth2

Возможно, вы можете отправить сообщение об ошибке в Swashbuckle repo , потому что, если он не может быть переопределен, он может быть, например, перечислением, чтобы не вносить путаницу.

...