Схема уже существует: носитель в .NET Core 8.0.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Схема уже существует: носитель в .NET Core 8.0.

Сообщение Anonymous »

Я работаю над интеграцией Identity в свое приложение .NET Core 8.0 и реализацией аутентификации по каналу JWT. Однако я столкнулся с ошибкой

System.InvalidOperationException: схема уже существует: носитель

при запуске приложения.
Мой код Program.cs:

Код: Выделить всё

using Solv.Identity.Api.Common;
using Solv.Identity.Api.Configurations;
using Solv.Identity.Api.Endpoints;
using Solv.Identity.Infrastructure;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.IdentityModel.Tokens;
using Solv.Identity.Application.Auth;
using Solv.Identity.Application.Features.Configuration;
using System.Text;
using Solv.Identity.Application.Features.Users;
using System;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.AspNetCore.Identity;

var builder = WebApplication.CreateBuilder(args);

// Register AuthService
builder.Services.AddTransient();

// Add authentication and authorization

builder.Services.AddAuthentication(x =>
{
x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(x =>
{
x.TokenValidationParameters = new TokenValidationParameters
{
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration.PrivateKey)),
ValidateIssuer = false,
ValidateAudience = false
};
});

builder.Services.AddAuthorization(x =>
{
x.AddPolicy("tech", p => p.RequireRole("developer"));
});

// Controllers
builder.AddValidationSetup();
// Swagger
builder.Services.AddSwaggerSetup();
// Persistence
builder.Services.AddPersistenceSetup(builder.Configuration);
// Application layer setup
builder.Services.AddApplicationSetup();
// Request response compression
builder.Services.AddCompressionSetup();
//// HttpContextAcessor
builder.Services.AddHttpContextAccessor();
//// Mediator
builder.Services.AddMediatRSetup();
//// Exception handler
builder.Services.AddExceptionHandler();

builder.Logging.ClearProviders();

// Add serilog
if (builder.Environment.EnvironmentName != "Testing")
{
//builder.Host.UseLoggingSetup(builder.Configuration);

// Add opentelemetry
builder.AddOpenTemeletrySetup();
}

builder.Services.AddHttpClient();

#region Keycloak
builder.Services.AddKeycloakServices();
builder.AddKeycloakSettings();
builder.AddKeycloakAuthorization();
#endregion

var app = builder.Build();

// Configure the HTTP request pipeline.
app.UseResponseCompression();

if (app.Environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}

app.UseRouting();

app.UseSwaggerSetup();
app.UseHsts();

app.UseResponseCompression();
app.UseHttpsRedirection();

// Configure middleware
app.UseAuthentication();
app.UseAuthorization();

// Define endpoints
app.MapGet("/login", (AuthService service) =>
{
var user = new User(
1,
"M.Sohail",
"M.Sohail",
"sohail@gmail.com",
"abcd123",
new[] { "developer" });

return service.Create(user);
});

app.MapGet("/test", () => "OK!")
.RequireAuthorization();

app.MapGet("/test/tech", () => "tech OK!")
.RequireAuthorization("tech");

app.UseMiddleware();
await app.Migrate();
await app.RunAsync();
Я попытался изменить порядок установки промежуточного программного обеспечения и аутентификации в Program.cs, но ошибка не устранена.
Я проверил для повторяющихся вызовов методов AddAuthentication и AddJwtBearer.
При необходимости я могу предоставить упрощенную версию своего кода с упором на настройку аутентификации, вызывающую ошибку.
Среда
  • .NET Core 8.0
    < li>Identity Framework версии 8.0.0
  • Visual Studio 2022
  • Windows 10


Подробнее здесь: https://stackoverflow.com/questions/783 ... t-core-8-0
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Схема уже существует: носитель в .NET Core 8.0.
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как изменить token_type с «Носитель» на «носитель» в ответе Keycloak/token?
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Настройка Swagger (ASP.NET Core) с использованием заголовков авторизации (носитель)
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

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