АСП. Проект NET Core Web API не создал заголовок запроса «Авторизация» в файле документа «swagger. json».C#

Место общения программистов C#
Anonymous
АСП. Проект NET Core Web API не создал заголовок запроса «Авторизация» в файле документа «swagger. json».

Сообщение Anonymous »

ASP. NET Core Web API не сгенерировал заголовок запроса «Авторизация» в файл документа «swagger. json».
Я пытался вывести заголовок запроса «Авторизация». " в файл "swagger.json"
Информация о проекте:
Проект: ASP.NET Core Web API
Платформа: .NET 8.0
1. Нет вывода ошибок< /p>
2.Я уверен, что включил генерацию документов в «MyProject. csproj»:
True

3. Очистив решение, пересобрав и запустив приложение, вы увидите, что файл MyProject.xml был выведен.
4.Откройте файл «MyProject.xml», и я увижу, что информация заголовка запроса сгенерирована:


GetUserInfo

Token
ResponseModel


5.Посетите «https://localhost:12345/swagger/v1/swagger.json». Я не видел, чтобы заголовок запроса «Авторизация» был сгенерирован в «swagger». . json":
Изображение
< /p>
Это мой код «Program. cs»:
builder.Services.AddSwaggerGen(swagger =>
{
swagger.SwaggerDoc("v1", new OpenApiInfo { Title = "MyProject", Version = "1.0.1" });

swagger.SwaggerDoc("v2", new OpenApiInfo { Title = "MyProject", Version = "2.0" });

// Include xml file
swagger.IncludeXmlComments(AppContext.BaseDirectory + Assembly.GetEntryAssembly().GetName().Name + ".xml", true);

swagger.AddSecurityDefinition(JwtBearerDefaults.AuthenticationScheme, new()
{
In = ParameterLocation.Header,
Type = SecuritySchemeType.ApiKey,
Description = "Bearer Token",
Name = "Authorization",
BearerFormat = "JWT",
Scheme = JwtBearerDefaults.AuthenticationScheme
});

swagger.AddSecurityRequirement(new()
{
{
new OpenApiSecurityScheme()
{
Reference = new OpenApiReference()
{
Type = ReferenceType.SecurityScheme,
Id = JwtBearerDefaults.AuthenticationScheme
}
},
new string[]{ }
}
});
});
// Other Code...
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI(swagger =>
{
swagger.SwaggerEndpoint("/swagger/v1/swagger.json", "v1");
swagger.SwaggerEndpoint("/swagger/v2/swagger.json", "v2");
});
}
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseMiddleware();
app.MapControllers();
app.Run();

Это код моего контроллера:
///
/// UserInfo
///
[ApiController]
[Route("api/[controller]/[action]")]
[Authorize(Roles = "User,Admin")]
public class UserInfoController(HttpRequestModel httpRequestModel) : ControllerBase
{
private readonly HttpRequestModel _httpRequest = httpRequestModel;

///
/// GetUserInfo
///
/// Token
/// ResponseModel
[HttpGet]
public ResponseModel GetUserInfo([Required][FromHeader(Name = "Authorization")] string authorization)
{
using (UserInfoBll userInfoBll = new())
{
return userInfoBll.GetUserInfoModel(_httpRequest.Token.UserId);
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... -authoriza

Вернуться в «C#»