/// <summary>
        /// Настраивает IdentityServer
        /// </summary>
        /// <param name="services"></param>
        /// <param name="configuration"></param>
        /// <returns></returns>
        public static IServiceCollection AddAuthentication(this IServiceCollection services, IConfiguration configuration, IHostingEnvironment environment)
        {
            services.AddIdentityServer(options =>
            {
                options.Events.RaiseErrorEvents       = true;
                options.Events.RaiseInformationEvents = true;
                options.Events.RaiseFailureEvents     = true;
                options.Events.RaiseSuccessEvents     = true;
            })
            .AddAspNetIdentity <Account>()
            .AddConfigurationStore(options =>
            {
                if (environment.EnvironmentName.Equals("debug", StringComparison.CurrentCultureIgnoreCase))
                {
                    options.ConfigureDbContext = x => x.UseSqlServer(configuration.GetConnectionString("MySound.Auth.Connection.Debug"),
                                                                     sql => sql.MigrationsAssembly(typeof(IdentityServerConfiguration).Assembly.GetName().Name));
                }
                else
                {
                    options.ConfigureDbContext = x => x.UseSqlServer(configuration.GetConnectionString("MySound.Auth.Connection"),
                                                                     sql => sql.MigrationsAssembly(typeof(IdentityServerConfiguration).Assembly.GetName().Name));
                }
            })
            .AddOperationalStore(options =>
            {
                if (environment.EnvironmentName.Equals("debug", StringComparison.CurrentCultureIgnoreCase))
                {
                    options.ConfigureDbContext = x => x.UseSqlServer(configuration.GetConnectionString("MySound.Auth.Connection.Debug"),
                                                                     sql => sql.MigrationsAssembly(typeof(IdentityServerConfiguration).Assembly.GetName().Name));
                }
                else
                {
                    options.ConfigureDbContext = x => x.UseSqlServer(configuration.GetConnectionString("MySound.Auth.Connection"),
                                                                     sql => sql.MigrationsAssembly(typeof(IdentityServerConfiguration).Assembly.GetName().Name));
                }
            })
            .AddSigningCredential(Rsa.GenerateKeys());

            return(services);
        }
예제 #2
0
 public void GenerateKey(int size, BigNumber exponent)
 {
     Rsa.GenerateKeys(size, exponent, null, null);
 }