Я пытаюсь использовать аутентификацию в ASP. NET Базовом проекте с использованием Angular. Проблема в том, что у нас есть база данных, полная таблиц, которые уже используются. В частности, у нас есть таблица User
и таблица UserTypes
, которые в основном являются нашими «ролями». Я хотел бы использовать IdentityServer, так как это кажется вариантом по умолчанию при создании нового проекта. Я использовал следующую команду в консоли диспетчера пакетов:
Scaffold-DbContext "Server=-----;Database=MP_Administration;Persist Security Info=True;User id=sa; Password=------"
Microsoft.EntityFrameworkCore.SqlServer
-OutputDir Models -Context MpContext -t User, UserType
Она отлично работает, но в моем Startup.cs
я изо всех сил пытаюсь заставить все работать. Я хотел бы сделать что-то вроде этого:
services.AddDbContext<MpContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("MPAdministrationDatabase")));
services.AddDefaultIdentity<User>()
.AddEntityFrameworkStores<MpContext>();
services.AddIdentityServer()
.AddApiAuthorization<User, MpContext>();
services.AddAuthentication()
.AddIdentityServerJwt();
Но Identity Server, похоже, не нравится MpContext
(который реализует DbContext
), сгенерированный командой scaffolding, упомянутой ранее. Я пытался написать свои собственные версии ApiAuthorizationDbContext
, которые бы заняли место DbContext
, а также KeyApiAuthorizationDbContext
, но я постепенно начинаю чувствовать, что тону. Любая помощь будет принята с благодарностью.