Code: Select all
var newConnectionString = "Data Source=...";
DynamicDbContext activeDbContext = new DynamicDbContext(newConnectionString);
using (var context = activeDbContext.ActiveDbContext)
{
ApplicationDbContext = context;
var userStore = new UserStore(context);
var options = Options.Create(new IdentityOptions());
var passwordHasher = new PasswordHasher();
var userValidator = new IUserValidator[0];
var passwordValidator = new IPasswordValidator[0];
var keyNormalizer = new UpperInvariantLookupNormalizer();
var errors = new IdentityErrorDescriber();
var services = new ServiceCollection().BuildServiceProvider();
var logger1 = ServiceProvider.GetRequiredService();
var newUserManager = new UserManager(userStore, options, passwordHasher, userValidator, passwordValidator, keyNormalizer, errors, services, logger1);
var contextAccessor = ServiceProvider.GetRequiredService();
var claimsFactory = ServiceProvider.GetRequiredService();
var optionsAccessor = ServiceProvider.GetRequiredService();
var logger = ServiceProvider.GetRequiredService();
var schemes = ServiceProvider.GetRequiredService();
var confirmation = ServiceProvider.GetRequiredService();
var signInManager = new SignInManager(newUserManager, contextAccessor, claimsFactory, optionsAccessor, logger, schemes, confirmation);
var result = await signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: false);
}
< /code>
Die letzte Codezeile schlägt zur Laufzeit fehl, da die Hauptdatenbank verwendet wird und die Tabellen daher [url=viewtopic.php?t=22532]nicht gefunden[/url] werden: Ich ändere die im Programm verwendete ConnectionString in Program.cs
Code: Select all
program.cs
...
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection") ?? throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");
builder.Services.AddDbContext(options =>
{
options.UseSqlServer(connectionString);
});
builder.Services.AddIdentityCore(options => options.SignIn.RequireConfirmedAccount = false)
.AddEntityFrameworkStores()
.AddSignInManager()
.AddDefaultTokenProviders();
...
< /code>
Wie verbinde ich den SigninManager mit der dynamisch erstellten Datenbankverbindung? Jede Hilfe ist willkommen.>