// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddDbContext <AcademiaContext>(options => options.UseSqlServer(Configuration.GetConnectionString("ConexaoSqlServer"))); ConfigureService.ConfigureDependenciesService(services); ConfigureRepository.ConfigureDependenciesRespository(services); services.AddCors(options => { options.AddPolicy("CorsPolicy", builder => { builder .AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader(); }); }); services.AddControllers().AddFluentValidation(options => { options.RegisterValidatorsFromAssemblyContaining <Startup>(); options.RegisterValidatorsFromAssemblyContaining <AlunoInputDTO>(); options.RegisterValidatorsFromAssemblyContaining <ProfessorInputDTO>(); options.RegisterValidatorsFromAssemblyContaining <AcademiaInputDTO>(); options.RegisterValidatorsFromAssemblyContaining <AnamneseInputDTO>(); options.RegisterValidatorsFromAssemblyContaining <AntropometriaInputDTO>(); }); services.AddControllers().AddNewtonsoftJson(); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Version = "v1", Title = "Academia", }); c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme() { Name = "Authorization", Type = SecuritySchemeType.ApiKey, Scheme = "Bearer", BearerFormat = "JWT", In = ParameterLocation.Header, Description = "Enter ‘Bearer’ [space] and then your valid token in the text input below.\r\n\r\nExample: \"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9\"", }); c.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }, new string[] {} } }); }); services.AddIdentity <ApplicationUser, IdentityRole>() .AddEntityFrameworkStores <AcademiaContext>() .AddDefaultTokenProviders(); var key = Encoding.ASCII.GetBytes(Settings.Secret); services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(options => { options.SaveToken = true; options.RequireHttpsMetadata = false; options.TokenValidationParameters = new TokenValidationParameters() { ValidateIssuerSigningKey = true, ValidateIssuer = false, ValidateAudience = false, IssuerSigningKey = new SymmetricSecurityKey(key) }; }); }