Пример #1
0
        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";
            });
        }
Пример #2
0
 private static void InitializeContainer(Container container)
 {
     DependencyInjectionHelper.Configure(container);
 }