Я пытаюсь изменить существующую систему входа в систему 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);
...
}