Как передать имя пользователя в формате base 64 в заголовке web api swagger? - PullRequest
0 голосов
/ 22 февраля 2019

Я реализовал веб-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"
            });
        }
    }

Пожалуйста, помогите мне.

...