public void ConfigureServices(IServiceCollection services) { ConfigureDatabase.ConfigureDependencyDatabases(services); ConfigureService.ConfigureDependencyServices(services); ConfigureRepository.ConfigureDependencyRepositories(services); ConfigureMapping.ConfigureDependencyMapping(services); var signingConfiguration = new SigningConfiguration(); var tokenConfiguration = Configuration.GetSection("Token").Get <TokenConfiguration>(); services.AddSingleton(signingConfiguration); services.AddSingleton(tokenConfiguration); services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(options => { var validation = options.TokenValidationParameters; validation.IssuerSigningKey = signingConfiguration.Key; validation.ValidAudience = tokenConfiguration.Audience; validation.ValidIssuer = tokenConfiguration.Issuer; validation.ValidateIssuerSigningKey = true; validation.ValidateLifetime = true; validation.ClockSkew = TimeSpan.Zero; }); services.AddAuthorization(options => { options.DefaultPolicy = new AuthorizationPolicyBuilder() .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme) .RequireAuthenticatedUser() .Build(); }); services.AddSwaggerGen(config => { config.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" }); config.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { In = ParameterLocation.Header, Description = "Token jwt", Name = "Authorization", Type = SecuritySchemeType.ApiKey }); config.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Id = "Bearer", Type = ReferenceType.SecurityScheme } }, new string[0] } }); }); services.AddControllers(); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); ConfigureMapping.Configure(); Database.SetInitializer <PseezEntDbContext>(null); InitializeStructureMap(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { ConfigureRepository.ConfigureDependencieRepository(services); ConfigureMapping.ConfigureDependenceMapping(services); services.AddControllers().AddFluentValidation(); ConfigureService.ConfigureDependencieService(services); ConfigureValidation.ConfigureValidationService(services); ConfigureAppService.ConfigureDependencieAppService(services); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Version = "v1", Title = "Teste Sydy API", Description = "Teste de uma WebAPI para times de futebol...", Contact = new OpenApiContact { Name = "Pascal Breno", Email = "*****@*****.**", Url = new Uri("https://www.linkedin.com/in/breno-felix-de-souza-49186b131/"), } }); }); }