У меня есть приложение Blazor на стороне сервера, которое использует настраиваемый поставщик удостоверений для CosmosDB, который не использует Entity Framework. Я хочу преобразовать приложение в Blazor WebAssembly, размещенное на Asp. net Core .
Пользовательский поставщик Startup.cs на стороне сервера My Blazor выглядит следующим образом:
services.AddTransient<IRoleStore<ApplicationRole>, CosmosDBRoleStore<ApplicationRole>>();
services.AddTransient<IUserStore<ApplicationUser>, CosmosDBUserStore<ApplicationUser>>();
services.AddIdentity<ApplicationUser, ApplicationRole>().AddDefaultTokenProviders();
services.AddAuthentication();
services.AddAuthorization();
Текущий шаблон в Visual Studio для Blazor WebAssembly размещен на Asp. net Core использует Identity Server4 поверх Asp. Net Core Identity + SQL Server , и для этого требуется DBContext от Entity Framework Core.
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<ApplicationUser>(options =>
options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddIdentityServer().AddApiAuthorization<ApplicationUser, ApplicationDbContext>();
services.AddAuthentication().AddIdentityServerJwt();
Я установил настраиваемый поставщик удостоверений Cosmos DB, но строка
services.AddIdentityServer().AddApiAuthorization<ApplicationUser, ApplicationDbContext>();
требует DBContext Entity Framework для заполнения всех параметров для IdentityServer4.
Я проанализировал четыре сценария ios:
1) Используйте Entity Framework поверх моего настраиваемого поставщика удостоверений, но для этого потребуется почти полное перекодирование, поскольку он использует глубоко настроенный Интеграция CosmosDB с настраиваемым входом / выходом / регистрацией и c .. страницами
2) Используйте Identity Server4 поверх моего настраиваемого поставщика, но я новичок в этом, и вся структура сложна и d все примеры с Asp. Net Core Identity также используют Entity Framework, и я не могу понять, как это сделать.
3) Отбросьте мой пользовательский поставщик удостоверений и используйте Azure B2 C. После некоторых тестов я обнаружил, что это беспорядочно и сложно настроить, с всплывающими окнами и небрендированными письмами с подтверждением. Это также свело бы к нулю недели работы над настраиваемыми страницами редактирования профиля.
4) Сохраните проект на стороне сервера Blazor и не переносите
Есть ли что-то, что мне не хватает, что помогло бы решить эта проблема? Любая библиотека, которая может помочь настроить IdentityServer4 с помощью настраиваемого поставщика удостоверений, который не использует Entity Framework?