// This method gets called by the runtime. Use this method to add services to the container. public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddCors(); var policy = new CorsPolicy(); policy.Headers.Add("*"); policy.Methods.Add("*"); policy.Origins.Add("*"); policy.SupportsCredentials = true; services.AddCors(x => x.AddPolicy("corsGlobalPolicy", policy)); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); services.AddSingleton <IConfiguration>(Configuration); services.AddSingleton <IMapper>(sp => AutoMapperConfiguration.CreateMapper()); var builder = new ContainerBuilder(); builder.Populate(services); ApiFactory.RegisterDependencies(builder, Configuration); this.ApplicationContainer = builder.Build(); var key = Encoding.ASCII.GetBytes(Configuration["AppSettings:Secret"]); services.AddAuthentication(x => { x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(x => { x.RequireHttpsMetadata = false; x.SaveToken = true; x.TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(key), ValidateIssuer = false, ValidateAudience = false }; }); return(new AutofacServiceProvider(this.ApplicationContainer)); }