public void ConfigureServices(IServiceCollection services) { DependencyInjectionHelper.Configure(services); services .AddMediatR(typeof(SearchOrcamentoQuery).GetTypeInfo().Assembly); services .AddCors(); services.AddControllersWithViews(options => { options.Filters.Add(typeof(CustomExceptionFilterAttribute)); //var policy = new AuthorizationPolicyBuilder() // .RequireAuthenticatedUser() // .RequireScope(Config._apiName).Build(); //options.Filters.Add(new AuthorizeFilter(policy)); }) .AddMvcOptions(options => { options.ModelBinderProviders.Insert(0, new DateTimeModelBinderProvider()); }) .AddFluentValidation(fv => fv.RegisterValidatorsFromAssemblyContaining <OrcamentoViewModel>()); services.AddDbContext <CalculadorOrcamentoContext>(options => options.UseLazyLoadingProxies().UseSqlServer(Configuration.GetConnectionString("CalculadorOrcamentoConnection"))); services .Configure <AppSettings>(_appSettingsSection); services.AddAuthentication(x => { x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(x => { x.RequireHttpsMetadata = false; x.SaveToken = true; x.TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = _appSettings.JwtSettings.ValidateIssuerSigningKey, ValidateIssuer = _appSettings.JwtSettings.ValidateIssuer, ValidateAudience = _appSettings.JwtSettings.ValidateAudience, ValidateLifetime = _appSettings.JwtSettings.ValidateLifetime, SignatureValidator = delegate(string token, TokenValidationParameters parameters) { var jwt = new JwtSecurityToken(token); return(jwt); }, RequireSignedTokens = false, ClockSkew = TimeSpan.Zero }; }); services.AddAuthorization(auth => { auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder() .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme) .RequireAuthenticatedUser().Build()); }); // In production, the React files will be served from this directory services.AddSpaStaticFiles(configuration => { configuration.RootPath = "ClientApp/build"; }); }
private static void InitializeContainer(Container container) { DependencyInjectionHelper.Configure(container); }