public static string GetDbConnectionString(this SiteSettings siteSettingsValue) { siteSettingsValue.CheckArgumentIsNull(nameof(siteSettingsValue)); switch (siteSettingsValue.ActiveDatabase) { case ActiveDatabase.InMemoryDatabase: return(null); case ActiveDatabase.LocalDb: var attachDbFilename = siteSettingsValue.ConnectionStrings.LocalDb.AttachDbFilename; var webRootPath = Path.Combine(AppContext.BaseDirectory.Split(new[] { "bin" }, StringSplitOptions.RemoveEmptyEntries).First(), "wwwroot"); var attachDbFilenamePath = Path.Combine(webRootPath, "App_Data", attachDbFilename); var localDbInitialCatalog = siteSettingsValue.ConnectionStrings.LocalDb.InitialCatalog; return($@"Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog={localDbInitialCatalog};AttachDbFilename={attachDbFilenamePath};Integrated Security=True;MultipleActiveResultSets=True;"); case ActiveDatabase.SqlServer: return(siteSettingsValue.ConnectionStrings.SqlServer.ApplicationDbContextConnection); case ActiveDatabase.Postgres: return(siteSettingsValue.ConnectionStrings.Postgres.ApplicationDbContextConnection); default: throw new NotSupportedException("Please set the ActiveDatabase in appsettings.json file."); } }
public static IServiceCollection AddIdentityOptions( this IServiceCollection services, SiteSettings siteSettings) { siteSettings.CheckArgumentIsNull(nameof(siteSettings)); services.addConfirmEmailDataProtectorTokenOptions(siteSettings); services.AddIdentity <User, Role>(identityOptions => { setPasswordOptions(identityOptions.Password, siteSettings); setSignInOptions(identityOptions.SignIn, siteSettings); setUserOptions(identityOptions.User); setLockoutOptions(identityOptions.Lockout, siteSettings); }).AddUserStore <ApplicationUserStore>() .AddUserManager <ApplicationUserManager>() .AddRoleStore <ApplicationRoleStore>() .AddRoleManager <ApplicationRoleManager>() .AddSignInManager <ApplicationSignInManager>() .AddErrorDescriber <CustomIdentityErrorDescriber>() // You **cannot** use .AddEntityFrameworkStores() when you customize everything //.AddEntityFrameworkStores<ApplicationDbContext, int>() .AddDefaultTokenProviders() .AddTokenProvider <ConfirmEmailDataProtectorTokenProvider <User> >(EmailConfirmationTokenProviderName); services.ConfigureApplicationCookie(identityOptionsCookies => { var provider = services.BuildServiceProvider(); setApplicationCookieOptions(provider, identityOptionsCookies, siteSettings); }); services.enableImmediateLogout(); return(services); }
public static string GetDbConnectionString(this SiteSettings siteSettingsValue) { siteSettingsValue.CheckArgumentIsNull(nameof(siteSettingsValue)); switch (siteSettingsValue.ActiveDatabase) { case ActiveDatabase.InMemoryDatabase: return(null); case ActiveDatabase.SqlServer: return(siteSettingsValue.ConnectionStrings.SqlServer.ApplicationDbContextConnection); default: throw new NotSupportedException("Please set the ActiveDatabase in appsettings.json file."); } }