Когда я запрашиваю любую конечную точку API из пользовательского интерфейса Swagger, я получаю следующую ошибку
System.InvalidOperationException: не была указана аутентификацияScheme, и не было найдено DefaultChallengeScheme. Схемы по умолчанию можно установить с помощью AddAuthentication (строка defaultScheme) или AddAuthentication (Action configureOptions).
в Microsoft.AspNetCore.Authentication.AuthenticationService.ChallengeAsync (контекст HttpContext, схема String, свойства AuthenticationProperties)
в Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync (далее RequestDelegate, контекст HttpContext, политика AuthorizationPolicy, PolicyAuthorizationResult authorizeResult)
в Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke (контекст HttpContext)
в Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke (контекст HttpContext)
в Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke (HttpContext httpContext)
в Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke (HttpContext httpContext, ISwaggerProvider swaggerProvider)
в Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke (контекст HttpContext)
ЗАГОЛОВКИ
=======
Принять: /
Принятие кодировки: gzip, deflate
Accept-Language: en-US, en; q = 0,5
Авторизация: Знаменосец eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySWQiOiIzIiwiTG9naW5JZCI6ImFkbWluIiwiVXNlclR5cGVJZCI6IjEiLCJFbWFpbCI6ImEiLCJNb2JpbGUiOiJhIiwianRpIjoiMWU1MDY3ODAtMWRjNS00MDYzLWFkMTktMDdlMjg4MzAxOWVjIiwiZXhwIjoxNjIzNDYzNjQ4LCJpc3MiOiJlZHVjYXJlLmNvbSIsImF1ZCI6ImVkdWNhcmUuY29tIn0.G2-D_oIdwUDw_3iz87jxWBIMabFpLlR5ASjCr109kNM
Подключение: keep-alive
Хост: localhost: 21068
Ссылка: http: // localhost: 21068 / swagger / index.html
конфигурация Swagger приведена ниже
public void ConfigureServices(IServiceCollection services)
{
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "Edu Care API", Version = "v1" });
c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
Description = "Please insert the authorization token into field",
Name = "Authorization",
BearerFormat = "JWT",
In = ParameterLocation.Header,
Type = SecuritySchemeType.Http,
Scheme = "bearer"
});
c.AddSecurityRequirement(new OpenApiSecurityRequirement {
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "Bearer"
}
},
new string[] { }
}
});
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Edu Care API v1");
//c.RoutePrefix = string.Empty;
});
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapRazorPages();
});
}
мой базовый контроллер, как показано ниже
[Authorize]
[ApiController]
[Route("api/[controller]")]
public class BaseController : ControllerBase
{
}
моя конечная точка API, как показано ниже
[Route("api/[controller]")]
[ApiController]
public class AcademicFeeConfigurationController : BaseController
{
[HttpGet]
[Route("[action]")]
public IActionResult GetFeeRelatedAllSli()
{
try
{
object sli = new
{
FeeTypeSli = new FeeTypeService(context).FeeTypeSli(),
ClassInfoSli = new ClassInfoService(context).ClassInfoSli(),
SectionSli = new SectionInfoService(context).SectionInfoSli(),
AcademicSessionSli = new AcademicSessionInfoService(context).AcademicSessionSli(),
};
return Ok(sli);
}
catch (Exception ex)
{
ResponseModel.Notification = UtilityHelper.CreateNotification(Helpers.ExceptionMessage(ex), Enums.NotificationType.Error);
return StatusCode(500, ResponseModel);
}
}
}
Может чего-то не хватает. Может ли кто-нибудь дать какое-либо предложение / решение