/// <summary> /// Configures CodeGenStore. /// </summary> /// <param name="builder">The builder.</param> /// <param name="DbContextOptions">The store options action.</param> /// <returns></returns> static IOAuthAppServiceBuilder AddSDKStore( this IOAuthAppServiceBuilder builder, Action <DbContextOptionsBuilder> DbContextOptions) { builder.Services.AddDbContext <SdkDbContext>(DbContextOptions); return(builder); }
/// <summary> /// Configures TenantStore. /// </summary> /// <param name="builder">The builder.</param> /// <param name="DbContextOptions">The store options action.</param> /// <param name="certificate">The certificate.</param> /// <param name="identityServerOptions">The identityServerOptions.</param> /// <param name="identityBuilder">The identityBuilder.</param> /// <returns></returns> static IOAuthAppServiceBuilder AddIdentityServer( this IOAuthAppServiceBuilder builder, Action <DbContextOptionsBuilder> DbContextOptions, X509Certificate2 certificate, Action <IdentityServerOptions> identityServerOptions = null, Action <IIdentityServerBuilder> identityBuilder = null) { IIdentityServerBuilder ISBuilder = null; if (identityServerOptions != null) { ISBuilder = builder.Services.AddIdentityServer(identityServerOptions); } else { ISBuilder = builder.Services.AddIdentityServer(); } ISBuilder.AddSigningCredential(certificate) .AddCustomAuthorizeRequestValidator <TenantAuthorizeRequestValidator>() .AddCustomTokenRequestValidator <TenantTokenRequestValidator>() .AddConfigurationStore(x => x.ConfigureDbContext = DbContextOptions) .AddOperationalStore(x => x.ConfigureDbContext = DbContextOptions) .AddAspNetIdentity <AppUser>() .AddJwtBearerClientAuthentication() .AddAppAuthRedirectUriValidator() .AddRedirectUriValidator <AnonymousRedirectUriValidator>() .AddExtensionGrantValidator <MobileCodeGrantValidator>() .AddExtensionGrantValidator <OpenIdOAuthGrantValidator>(); if (identityBuilder != null) { identityBuilder.Invoke(ISBuilder); } return(builder); }
/// <summary> /// Adds the required platform services. /// </summary> /// <param name="builder">The builder.</param> /// <param name="config">The config.</param> /// <returns></returns> static IOAuthAppServiceBuilder AddEmailService(this IOAuthAppServiceBuilder builder, IConfigurationSection config) { builder.Services.Configure <EmailSenderOptions>(config); builder.Services.AddTransient <IEmailSender, EmailSender>(); builder.Services.AddTransient <EmailService>(); return(builder); }
/// <summary> /// Adds AddIpRateLimit. /// </summary> /// <param name="builder">The builder.</param> /// <returns></returns> static IOAuthAppServiceBuilder AddIpRateLimit(this IOAuthAppServiceBuilder builder) { builder.Services.Configure <IpRateLimitOptions>(Configuration.GetSection("ClientRateLimiting")); builder.Services.Configure <IpRateLimitPolicies>(Configuration.GetSection("ClientRateLimitPolicies")); builder.Services.AddSingleton <IIpPolicyStore, DistributedCacheIpPolicyStore>(); return(builder); }
/// <summary> /// Adds the required platform services. /// </summary> /// <param name="builder">The builder.</param> /// <returns></returns> static IOAuthAppServiceBuilder AddCoreService(this IOAuthAppServiceBuilder builder) { builder.Services.AddScoped <IPasswordHasher <AppUser>, IdentityMD5PasswordHasher>(); builder.Services.AddScoped <TenantService>(); builder.Services.AddSingleton <RedisService>(); builder.Services.AddSingleton <SwaggerCodeGenService>(); builder.Services.AddSingleton <AzureStorageService>(); return(builder); }
/// <summary> /// Configures SqlCache Service /// </summary> /// <param name="builder">The builder.</param> /// <param name="connection">database connection string</param> /// <param name="schemaName">table schemaName</param> /// <param name="tableName">table name</param> /// <returns></returns> static IOAuthAppServiceBuilder AddSqlCacheStore( this IOAuthAppServiceBuilder builder, string connection, string schemaName = "dbo", string tableName = "AppCache") { builder.Services.AddDistributedSqlServerCache(options => { options.ConnectionString = connection; options.SchemaName = schemaName; options.TableName = tableName; }); return(builder); }
/// <summary> /// Configures IdentityStore. /// </summary> /// <param name="builder">The builder.</param> /// <param name="DbContextOptions">The store options action.</param> /// <param name="identityOptions">The identity options action.</param> /// <returns></returns> static IOAuthAppServiceBuilder AddIdentityStore( this IOAuthAppServiceBuilder builder, Action <DbContextOptionsBuilder> DbContextOptions, Action <IdentityOptions> identityOptions = null) { builder.Services.AddDbContext <UserDbContext>(DbContextOptions); builder.Services.AddScoped <UserDbContext>(); builder.Services.AddScoped <UserManager <AppUser> >(); builder.Services.AddIdentity <AppUser, AppRole>(identityOptions) .AddDefaultUI() .AddEntityFrameworkStores <UserDbContext>() .AddDefaultTokenProviders(); return(builder); }