Добавьте @using Microsoft.AspNetCore.Components.Authorization
вверху файла App.razor.
Добавьте службы для опций и авторизации в Program.Main:
builder.Services.AddOptions();
builder.Services.AddAuthorizationCore();
Примечание: следующее:
services.AddBlazoredLocalStorage();
services.AddAuthorizationCore();
services.AddScoped<AuthenticationStateProvider,
ApiAuthenticationStateProvider>();
services.AddScoped<IAuthService, AuthService>();
Принадлежит клиенту, а не серверу, хотя в конце дня его конфигурация одинакова ...
Примечание: следующее:
services.AddScoped<AuthenticationStateProvider,
ApiAuthenticationStateProvider>();
Должно быть:
services.AddScoped<ApiAuthenticationStateProvider>();
services.AddScoped<AuthenticationStateProvider>(provider => provider.GetRequiredService<ApiAuthenticationStateProvider>());
Обратите внимание на порядок в классе запуска
Обновление:
Отключение компоновщика, как я я предложил в комментарии ниже, кажется, работает. Однако это должно быть временным решением. Вот как вы отключаете компоновщик: <BlazorLinkOnBuild>false</BlazorLinkOnBuild>
Отключая компоновщик, вы предотвращаете удаление неиспользуемого или не имеющего ссылки кода, который может быть причиной ошибки ... И включая компоновщик Позволь этому. Однако этот код:
builder.Services.AddOptions();
builder.Services.AddAuthorizationCore();
должен был помешать компоновщику удалить несвязанные логи c. Более того, добавление пользовательской реализации AuthenticationStateProvider в класс Program:
builder.Services.AddScoped<AuthenticationStateProvider,
ApiAuthenticationStateProvider>();
должно решить эту проблему. Вы сделали это так?
Еще раз, отключение компоновщика является временным решением.