Я реализовал веб-API с базовым фильтром аутентификации.Когда я хочу позвонить из Swagger , я сталкиваюсь с проблемами ниже:
1) Я не могу передать кодировку username
in Base64 .
2) Username
передается в свойстве Scheme ActionContext.Request.Headers.Authorization
вместо того же самого свойства Parameter.
Я пробовал с кодом ниже в swagger.
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.OperationFilter(() => new AddRequiredAuthorizationHeaderParameter());
});
public class AddRequiredAuthorizationHeaderParameter : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
var filterPipeline = apiDescription.ActionDescriptor.GetFilterPipeline();
var isAuthorized = filterPipeline.Select(filterInfo => filterInfo.Instance)
.Any(filter => filter is IAuthorizationFilter);
var allowAnonymous = apiDescription.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute>().Any();
if (operation.parameters == null)
operation.parameters = new List<Parameter>();
operation.parameters.Add(new Parameter
{
name = "Authorization",
@in = "header",
type = "",
required = true,
description = "User Name"
});
}
}
Пожалуйста, помогите мне.