Firstly I created choose database login page. After that login form appears in my project. In that logic, how to change connection with database in SignInManager and UserManager?
In Startup.cs I have this code:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ABCDBContext>(options =>
options.UseMySql(Configuration.GetConnectionString("ABCDBConnection")));
}
In the controller:
public AccountController(UserManager<ApplicationUser> userManager,
SignInManager<ApplicationUser> signInManager,
ILogger<AccountController> logger,
EmailSender emailSender, IUnitOfWork unitOfWork,
IStringLocalizer<Resource> localizer,
IWebHostEnvironment webHostEnvironment,
IConfiguration config)
{
_config = config;
_userManager = userManager;
_signInManager = signInManager;
_logger = logger;
_emailSender = emailSender;
_unitOfWork = unitOfWork;
_localizer = localizer;
_webHostEnvironment = webHostEnvironment;
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
urlPath = _config.GetValue<string>("ImagePath:UrlPath");
}
In DBContext:
public class ABCDBContext : IdentityDbContext<ApplicationUser, ApplicationRole, Guid, IdentityUserClaim<Guid>, ApplicationUserRole, IdentityUserLogin<Guid>, IdentityRoleClaim<Guid>, IdentityUserToken<Guid>>
{
public ABCDBContext(DbContextOptions<ABCDBContext> options)
: base(options)
{
}
}
In appsettings.json:
"ConnectionStrings": {
"DBConnection": "Server=localhost;Database=testingv7;user=root;password=123@abc",
"Testing20230220": "Server=localhost;Database=testingv8;user=root;password=123@abc",
"Testing20230221": "Server=localhost;Database=testingv9;user=root;password=123@abc",
"Testing20230222": "Server=localhost;Database=testingv10;user=root;password=123@abc",
"Testing20230223": "Server=localhost;Database=testingv11;user=root;password=123@abc",
"Testing20230224": "Server=localhost;Database=testingv12;user=root;password=123@abc"
}