Минимальные API в Blazor с RequireAuthorization() с использованием индивидуальной учетной записиC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Минимальные API в Blazor с RequireAuthorization() с использованием индивидуальной учетной записи

Сообщение Anonymous »

В моем проекте .NET8 Blazor я добавил Индивидуальную учетную запись для управления пользователями. Теперь, чтобы сохранить данные в базе данных, я добавил несколько минимальных конечных точек, например

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

public static void MapClientEndpoints (this IEndpointRouteBuilder routes)
{
var group = routes.MapGroup("/api/Client").WithTags(nameof(Client));

group.MapGet("/", async (HypnoContext db) =>
{
return await db.Client.ToListAsync();
})
.RequireAuthorization()
.WithName("GetAllClients")
.WithOpenApi();
}
Кроме того, я добавил конфигурацию для HttpClient

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

builder.Services.AddAuthentication(options =>
{
options.DefaultScheme = IdentityConstants.ApplicationScheme;
options.DefaultSignInScheme = IdentityConstants.ExternalScheme;
})
.AddIdentityCookies();

builder.Services.AddIdentityCore(options =>
options.SignIn.RequireConfirmedAccount = true)
.AddRoles()
.AddEntityFrameworkStores()
.AddSignInManager()
.AddDefaultTokenProviders();

builder.Services
.AddScoped(sp => sp
.GetRequiredService()
.CreateClient("ServerAPI"))
.AddHttpClient("ServerAPI", (provider, client) =>
{
client.BaseAddress = new Uri(builder. Configuration["FrontendUrl"]);
});
Затем на страницах я внедряю IHttpClientFactory

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

ClientFactory = clientFactory;
httpClient = ClientFactory.CreateClient("ServerAPI");
Хотя я вхожу в приложение как пользователь, вызовы API работают только в том случае, если в минимальном API не требуется авторизация. Как я могу защитить API и использовать их на стороне клиента?

Подробнее здесь: https://stackoverflow.com/questions/792 ... al-account
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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