예제 #1
0
 /// <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);
 }
예제 #2
0
        /// <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);
        }
예제 #3
0
 /// <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);
 }
예제 #4
0
        /// <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);
        }
예제 #5
0
 /// <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);
 }
예제 #6
0
        /// <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);
        }
예제 #7
0
        /// <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);
        }