// This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            // Add framework services.
            services.AddDbContext <ApplicationDbContext>(options =>
                                                         options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddIdentity <ApplicationUser, IdentityRole>()
            .AddEntityFrameworkStores <ApplicationDbContext>()
            .AddDefaultTokenProviders();

            services.AddAuthorization(options =>
            {
                options.AddPolicy("PermiteVerContatos", policy => policy.RequireClaim("Contatos", "Ver"));
                options.AddPolicy("PermiteGerenciarContatos", policy => policy.RequireClaim("Contatos", "Gerenciar"));
                options.AddPolicy("PermiteGerenciarTelefones", policy => policy.RequireClaim("Contatos", "GerenciarTelefones"));
            });

            services.AddMvc(options =>
            {
                options.Filters.Add(new ServiceFilterAttribute(typeof(GlobalExceptionHandlingFilter)));
                options.Filters.Add(new ServiceFilterAttribute(typeof(GlobalActionLogger)));
            });

            services.AddAutoMapper();

            services.Configure <ESClientProviderConfig>(Configuration.GetSection("ElasticSearch"));

            DependencyInjectionBootStrapper.RegisterServices(services);
        }
Example #2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMemoryCache();

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            services.AddAutoMapper(Assembly.Load("TestCollection.Application"));

            services.AddSwaggerGen(options =>
            {
                options.SwaggerDoc("v1",
                                   new Info
                {
                    Title       = "Test Collection",
                    Version     = "v1",
                    Description = "",
                    Contact     = new Contact
                    {
                        Name = "Gabriel Vilela",
                        Url  = "https://github.com/GabrielVilela"
                    }
                });
            });

            DependencyInjectionBootStrapper.RegisterServices(services);
        }
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <ApplicationDbContext>(options =>
                                                         options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddIdentity <ApplicationUser, IdentityRole>(options =>
            {
                options.Cookies.ApplicationCookie.AutomaticChallenge = false;
            })
            .AddEntityFrameworkStores <ApplicationDbContext>()
            .AddDefaultTokenProviders();

            services.AddOptions();
            services.AddMvc(options =>
            {
                options.OutputFormatters.Remove(new XmlDataContractSerializerOutputFormatter());
                options.UseCentralRoutePrefix(new RouteAttribute("api"));

                var policy = new AuthorizationPolicyBuilder()
                             .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme)
                             .RequireAuthenticatedUser()
                             .Build();

                options.Filters.Add(new AuthorizeFilter(policy));
                //options.Filters.Add(new ServiceFilterAttribute(typeof(GlobalActionLogger)));
            });

            services.AddAuthorization(options =>
            {
                options.AddPolicy("PermiteVerContatos", policy => policy.RequireClaim("Contatos", "Ver"));
                options.AddPolicy("PermiteGerenciarContatos", policy => policy.RequireClaim("Contatos", "Gerenciar"));
                options.AddPolicy("PermiteGerenciarTelefones", policy => policy.RequireClaim("Contatos", "GerenciarTelefones"));
            });

            var jwtAppSettingOptions  = Configuration.GetSection(nameof(JwtTokenOptions));
            var jwtAppSettingSecurity = Configuration.GetSection(nameof(JwtTokenSecurity));
            var signingKey            = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(jwtAppSettingSecurity[nameof(JwtTokenSecurity.SecretKey)]));

            services.Configure <JwtTokenOptions>(options =>
            {
                options.Issuer             = jwtAppSettingOptions[nameof(JwtTokenOptions.Issuer)];
                options.Audience           = jwtAppSettingOptions[nameof(JwtTokenOptions.Audience)];
                options.SigningCredentials = new SigningCredentials(signingKey, SecurityAlgorithms.HmacSha256);
            });

            services.AddAutoMapper();

            services.Configure <ESClientProviderConfig>(Configuration.GetSection("ElasticSearch"));

            DependencyInjectionBootStrapper.RegisterServices(services);
        }
Example #4
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            services.Configure <ApiBehaviorOptions>(options =>
            {
                options.SuppressModelStateInvalidFilter = true;
            });

            services.AddAutoMapper(Assembly.Load("DiscoMania.Application"));

            services.AddDbContext <DiscoManiaContext>(opt =>
                                                      opt.UseSqlServer(Configuration.GetConnectionString("DiscoManiaConnection")));

            // Add our Config object so it can be injected
            services.Configure <SpotifyCredentialsViewModel>(Configuration.GetSection("SpotifyConfig"));

            services.AddScoped <IDBContext, DiscoManiaContext>();

            services.AddSwaggerGen(options =>
            {
                options.SwaggerDoc("v1",
                                   new Info
                {
                    Title       = "Disco Mania",
                    Version     = "v1",
                    Description = "Projeto para loja de Discos",
                    Contact     = new Contact
                    {
                        Name = "Gabriel Vilela",
                        Url  = "https://github.com/"
                    }
                });
            });

            DependencyInjectionBootStrapper.RegisterServices(services);
        }
Example #5
0
        /// <summary>
        /// This method gets called by the runtime. Use this method to add services to the container.
        /// </summary>
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            services.AddHttpContextAccessor();

            services.AddDbContext <CdbContext>(options => options.UseMySql(Infra.CrossCutting.Common.EnvironmentConfigs.Database.MySqlConnectionString));

            services.AddCors();
            services.AddResponseCaching();
            services.Configure <ApiBehaviorOptions>(opt =>
            {
                opt.SuppressModelStateInvalidFilter = true;
            });

            #region Jwt

            IConfigurationSection jwtAppSettingOptions  = Configuration.GetSection(nameof(JwtTokenOptions));
            IConfigurationSection jwtAppSettingSecurity = Configuration.GetSection(nameof(JwtTokenSecurity));
            SymmetricSecurityKey  signingKey            = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(jwtAppSettingSecurity[nameof(JwtTokenSecurity.SecretKey)]));


            services.AddAuthentication(authOptions =>
            {
                authOptions.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                authOptions.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(bearerOptions =>
            {
                var paramsValidation = bearerOptions.TokenValidationParameters;

                paramsValidation.ValidateIssuer = true;
                paramsValidation.ValidIssuer    = jwtAppSettingOptions[nameof(JwtTokenOptions.Issuer)];

                paramsValidation.ValidateAudience = true;
                paramsValidation.ValidAudience    = jwtAppSettingOptions[nameof(JwtTokenOptions.Audience)];

                paramsValidation.ValidateIssuerSigningKey = true;
                paramsValidation.IssuerSigningKey         = signingKey;

                paramsValidation.RequireExpirationTime = true;
                paramsValidation.ValidateLifetime      = true;

                paramsValidation.ClockSkew = TimeSpan.Zero;
            });

            services.Configure <JwtTokenOptions>(options =>
            {
                options.Issuer             = jwtAppSettingOptions[nameof(JwtTokenOptions.Issuer)];
                options.Audience           = jwtAppSettingOptions[nameof(JwtTokenOptions.Audience)];
                options.SigningCredentials = new SigningCredentials(signingKey, SecurityAlgorithms.HmacSha256);
            });

            services.AddAuthorization(auth =>
            {
                auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
                               .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme‌​)
                               .RequireAuthenticatedUser()
                               .Build());
            });

            #endregion

            #region Swagger

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info {
                    Title = "Santa Helena - Click do Bem - API", Version = "v1"
                });
                c.AddSecurityDefinition("Bearer", new ApiKeyScheme {
                    In = "header", Description = "Por favor, digite JWT com Bearer no campo", Name = "Authorization", Type = "apiKey"
                });
                c.AddSecurityRequirement(new Dictionary <string, IEnumerable <string> >
                {
                    {
                        "Bearer", Enumerable.Empty <string>()
                    }
                });
                //var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                var xmlFile = $"ClickDoBemApi.xml";
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                c.IncludeXmlComments(xmlPath);
            });

            #endregion

            DependencyInjectionBootStrapper.RegisterServices(services);
        }
Example #6
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <ApplicationDbContext>(options =>
                                                         options.UseMySql(Configuration.GetConnectionString("DefaultConnection")));

            services.AddIdentity <ApplicationUser, ApplicationRole>(options =>
            {
                options.Cookies.ApplicationCookie.AutomaticChallenge = false;
            })
            .AddEntityFrameworkStores <ApplicationDbContext, Guid>()
            .AddDefaultTokenProviders();

            services.AddOptions();
            services.AddMvc(options =>
            {
                options.OutputFormatters.Remove(new XmlDataContractSerializerOutputFormatter());
                options.UseCentralRoutePrefix(new RouteAttribute("api"));

                var policy = new AuthorizationPolicyBuilder()
                             .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme)
                             .RequireAuthenticatedUser()
                             .Build();

                options.Filters.Add(new AuthorizeFilter(policy));
                //options.Filters.Add(new ServiceFilterAttribute(typeof(GlobalActionLogger)));
            });

            services.AddAuthorization(options =>
            {
                options.AddPolicy("PermiteVerContatos", policy => policy.RequireClaim("Contatos", "Ver"));
                options.AddPolicy("PermiteGerenciarContatos", policy => policy.RequireClaim("Contatos", "Gerenciar"));
                options.AddPolicy("PermiteGerenciarTelefones", policy => policy.RequireClaim("Contatos", "GerenciarTelefones"));
            });

            var jwtAppSettingOptions  = Configuration.GetSection(nameof(JwtTokenOptions));
            var jwtAppSettingSecurity = Configuration.GetSection(nameof(JwtTokenSecurity));
            var signingKey            = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(jwtAppSettingSecurity[nameof(JwtTokenSecurity.SecretKey)]));

            services.Configure <JwtTokenOptions>(options =>
            {
                options.Issuer             = jwtAppSettingOptions[nameof(JwtTokenOptions.Issuer)];
                options.Audience           = jwtAppSettingOptions[nameof(JwtTokenOptions.Audience)];
                options.SigningCredentials = new SigningCredentials(signingKey, SecurityAlgorithms.HmacSha256);
            });

            services.Configure <IdentityOptions>(options =>
            {
                // Password settings
                options.Password.RequireDigit           = false;
                options.Password.RequiredLength         = 6;
                options.Password.RequireNonAlphanumeric = false;
                options.Password.RequireUppercase       = false;
                options.Password.RequireLowercase       = false;

                // Lockout settings
                //options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(0);
                //options.Lockout.MaxFailedAccessAttempts = 10000;

                //// Cookie settings
                //options.Cookies.ApplicationCookie.ExpireTimeSpan = TimeSpan.FromDays(150);
                //options.Cookies.ApplicationCookie.LoginPath = "/Account/LogIn";
                //options.Cookies.ApplicationCookie.LogoutPath = "/Account/LogOut";

                // User settings
                options.User.RequireUniqueEmail = true;
            });

            services.AddAutoMapper();


            DependencyInjectionBootStrapper.RegisterServices(services);
        }
Example #7
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <ApplicationDbContext>(options =>
                                                         options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddDbContext <MainContext>(options =>
                                                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddIdentity <ApplicationUser, IdentityRole>()
            .AddEntityFrameworkStores <ApplicationDbContext>()
            .AddDefaultTokenProviders();

            services.Configure <IdentityOptions>(options =>
            {
                // Password settings
                options.Password.RequireDigit           = false;
                options.Password.RequiredLength         = 4;
                options.Password.RequireNonAlphanumeric = false;
                options.Password.RequireUppercase       = false;
                options.Password.RequireLowercase       = false;
                options.Password.RequiredUniqueChars    = 1;

                // Lockout settings
                options.Lockout.DefaultLockoutTimeSpan  = TimeSpan.FromMinutes(30);
                options.Lockout.MaxFailedAccessAttempts = 10;
                options.Lockout.AllowedForNewUsers      = true;

                // User settings
                options.User.RequireUniqueEmail = true;
            });

            var jwtAppSettingOptions  = Configuration.GetSection(nameof(JwtTokenOptions));
            var jwtAppSettingSecurity = Configuration.GetSection(nameof(JwtTokenSecurity));
            var signingKey            = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(jwtAppSettingSecurity[nameof(JwtTokenSecurity.SecretKey)]));

            services.AddAuthentication(authOptions =>
            {
                authOptions.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                authOptions.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(bearerOptions =>
            {
                var paramsValidation = bearerOptions.TokenValidationParameters;

                paramsValidation.ValidateIssuer = true;
                paramsValidation.ValidIssuer    = jwtAppSettingOptions[nameof(JwtTokenOptions.Issuer)];

                paramsValidation.ValidateAudience = true;
                paramsValidation.ValidAudience    = jwtAppSettingOptions[nameof(JwtTokenOptions.Audience)];

                paramsValidation.ValidateIssuerSigningKey = true;
                paramsValidation.IssuerSigningKey         = signingKey;

                paramsValidation.RequireExpirationTime = true;
                paramsValidation.ValidateLifetime      = true;

                paramsValidation.ClockSkew = TimeSpan.Zero;
            });

            services.Configure <JwtTokenOptions>(options =>
            {
                options.Issuer             = jwtAppSettingOptions[nameof(JwtTokenOptions.Issuer)];
                options.Audience           = jwtAppSettingOptions[nameof(JwtTokenOptions.Audience)];
                options.SigningCredentials = new SigningCredentials(signingKey, SecurityAlgorithms.HmacSha256);
            });

            services.AddAuthorization(auth =>
            {
                auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
                               .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme‌​)
                               .RequireAuthenticatedUser()
                               .Build());

                auth.AddPolicy("PermiteVerContatos", policy => policy.RequireClaim("Contatos", "Ver"));
                auth.AddPolicy("PermiteGerenciarContatos", policy => policy.RequireClaim("Contatos", "Gerenciar"));
                auth.AddPolicy("PermiteGerenciarTelefones", policy => policy.RequireClaim("Contatos", "GerenciarTelefones"));
            });

            services.AddOptions();
            services.AddMvc(options =>
            {
                options.OutputFormatters.Remove(new XmlDataContractSerializerOutputFormatter());
                options.UseCentralRoutePrefix(new RouteAttribute("api"));
                options.Filters.Add(new ServiceFilterAttribute(typeof(GlobalExceptionHandlingFilter)));
            });

            services.AddAutoMapper();

            services.Configure <ESClientProviderConfig>(Configuration.GetSection("ElasticSearch"));

            DependencyInjectionBootStrapper.RegisterServices(services);
        }