InvalidOperationException: схема уже существует: канал передачи данных (конфигурация аутентификации JWT. Net Core 2.2) - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь реализовать аутентификацию JWT в моем проекте Web API (разработан в. Net Core 2.2), но я получаю ошибку из-за конфигурации в классе запуска. Когда я запускаю свое приложение без этого кода, оно работает без ошибок. вот код конфигурации.

services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
            }).AddJwtBearer(options =>
            {
                options.SaveToken = true;
                options.RequireHttpsMetadata = false;
                options.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters
                {
                    ValidAudience = Configuration.GetSection("Jwt").GetSection("Issuer").Value,
                    ValidIssuer = Configuration.GetSection("Jwt").GetSection("Issuer").Value,
                    ValidateIssuer = false,
                    ValidateAudience = false,
                    ValidateLifetime = true,
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration.GetSection("Jwt").GetSection("Key").Value))

                };
            });

и это ошибка enter image description here

Пожалуйста, есть решение?

1 Ответ

1 голос
/ 11 апреля 2020

Вы можете изменить согласно ниже.

   services.AddAuthentication("Bearer")
            .AddJwtBearer("Bearer", options =>
            {
                options.SaveToken = true;
                options.RequireHttpsMetadata = false;
                options.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters
                {
                    ValidAudience = Configuration.GetSection("Jwt").GetSection("Issuer").Value,
                    ValidIssuer = Configuration.GetSection("Jwt").GetSection("Issuer").Value,
                    ValidateIssuer = false,
                    ValidateAudience = false,
                    ValidateLifetime = true,
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration.GetSection("Jwt").GetSection("Key").Value))

                };
            });
...