// 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); }
// 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); }
// 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); }
/// <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); }
// 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); }
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); }