// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddMvc(); new IocFactory().Initialize(services); var builder = services.AddIdentityServer(); services.AddIdentity <ApplicationUser, IdentityRole <int> >() .AddEntityFrameworkStores <MyDbContext>() .AddDefaultTokenProviders(); builder.AddDeveloperSigningCredential() .AddInMemoryIdentityResources(IdentityResourceConfig.GetIdentityResources()) .AddInMemoryApiResources(IdentityApiResourceConfig.GetApiResources()) .AddInMemoryClients(Clients.Get()) .AddAspNetIdentity <ApplicationUser>(); //.AddTestUsers(IdentityTestUsersConfig.GetUsers()); AutoMapper.Mapper.Initialize(cfg => { cfg.AddProfile <DatabaseProfile>(); cfg.CreateMissingTypeMaps = true; }); }
public void ConfigureServices(IServiceCollection services) { var identityConfig = this.configuration .GetSection("IdentityConfig"); var allowedOrigins = identityConfig .GetSection("Origins") .Get <string[]>(); var clientId = identityConfig .GetSection("WebClient") .GetValue <string>("Name"); var clientSecret = identityConfig .GetSection("WebClient") .GetValue <string>("Secret"); var authority = identityConfig .GetValue <string>("Authority"); services.AddMvc(options => { var requiredAuthorizedUser = new AuthorizationPolicyBuilder() .RequireAuthenticatedUser() .Build(); options.Filters.Add(new AuthorizeFilter(requiredAuthorizedUser)); }) .AddJsonOptions(options => { options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Utc; }) .SetCompatibilityVersion(CompatibilityVersion.Version_2_1); services.AddCors(options => options.AddPolicy(Startup.CorsPolicyName, builder => { builder.AllowAnyHeader() .AllowAnyMethod() .AllowCredentials(); if (this.environment.IsDevelopment()) { builder.AllowAnyOrigin(); return; } builder.WithOrigins(allowedOrigins); })); services.AddDistributedRedisCache(options => this.configuration.GetSection(Startup.RedisCacheOptions).Bind(options)); services.AddIdentityServer() .AddDeveloperSigningCredential() .AddInMemoryIdentityResources(IdentityResourceConfig.GetIdentityResource()) .AddInMemoryApiResources(ApiResourceConfig.GetApiResource()) .AddInMemoryClients(ClientConfig.GetClients(clientId, clientSecret, allowedOrigins)); services.AddAuthentication(Startup.AuthenticationSchema) .AddIdentityServerAuthentication(options => { options.Authority = authority; options.RequireHttpsMetadata = this.environment.IsProduction(); options.ApiName = ServiceNames.UserService; }); services.Configure <GzipCompressionProviderOptions>(options => options.Level = CompressionLevel.Optimal); services.Configure <AccountConnectionOptions>(options => this.configuration.GetSection(nameof(AccountConnectionOptions)).Bind(options)); services.Configure <ShardConnectionOptions>(options => this.configuration.GetSection(nameof(ShardConnectionOptions)).Bind(options)); services.AddResponseCompression(); }