C# OAuth PerOwinContext 1: N IdentityDbContext - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь изменить существующую систему входа в систему 1: 1 для поддержки систем 1: N.

Я написал оболочку клиента для IdentityDBContext под названием ApplicationDBContext. Внутри Startup.Auth.cs проекта создаются ApplicationDBContext, UserManager и RoleManager. ApplicationDBContextI написал принимает системный идентификатор для создания контекста. Есть ли способ для клиентов передать системный идентификатор, к которому они пытаются войти, чтобы я мог создать другой IdentityDBContext?

        private static ApplicationDbContext CreateApplicationDbContext()
        {
            return ApplicationDbContext.Create(Settings.Default.Id);
        }


        public void ConfigureAuth(IAppBuilder app)
        {
            // Save the data protection provider in static data so that the application
            // user manager has access to it.
            ApplicationUserManager.DataProtectionProvider = app.GetDataProtectionProvider();

            // Configure the db context, user manager, and role manager to use a single instance per request
            app.CreatePerOwinContext(CreateApplicationDbContext);
            app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
            app.CreatePerOwinContext<ApplicationRoleManager>(ApplicationRoleManager.Create);

            ...
         }

Вот что я имею в виду, но не могу найти никакой документации если это возможно

        private static ApplicationDbContext CreateApplicationDbContext(string id)
        {
            return ApplicationDbContext.Create(id);
        }


        public void ConfigureAuth(IAppBuilder app)
        {
            // Save the data protection provider in static data so that the application
            // user manager has access to it.
            ApplicationUserManager.DataProtectionProvider = app.GetDataProtectionProvider();

            // Configure the db context, user manager, and role manager to use a single instance per request
            //TODO
            //Get the system ID from user request
            string id = "";
            app.CreatePerOwinContext(CreateApplicationDbContext(id));
            app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
            app.CreatePerOwinContext<ApplicationRoleManager>(ApplicationRoleManager.Create);

            ...
         }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...