public static void DalDependenciesResolver(this IServiceCollection services, IConfiguration configuration) { services.AddDbContext <WarehouseContext>( options => options.UseSqlServer(VaultHandler.GetDbDataFromVault())); services.AddScoped <DbContext, WarehouseContext>(); services.AddScoped <IUoW, EfUoW>(); services.AddScoped <IBrandRepository, BrandRepository>(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { //Inject AppSettings var secrets = VaultHandler.GetDataFromVault(); JwtService.Token = secrets.JwtSecret; JwtService.ConnectionString = secrets.ConnectionString; services.Configure <ApplicationSettings>(Configuration.GetSection("ApplicationSettings")); services.AddControllers(); services.AddDbContext <AuthenticationContext>(options => options.UseSqlServer(JwtService.ConnectionString)); services.AddDefaultIdentity <ApplicationUser>() .AddRoles <IdentityRole>() .AddEntityFrameworkStores <AuthenticationContext>(); services.Configure <IdentityOptions>(options => { options.Password.RequireDigit = false; options.Password.RequireNonAlphanumeric = false; options.Password.RequireLowercase = false; options.Password.RequireUppercase = false; options.Password.RequiredLength = 4; } ); services.AddCors(); //Jwt Authentication var key = Encoding.UTF8.GetBytes(JwtService.Token); services.AddAuthentication(x => { x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; x.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(x => { x.RequireHttpsMetadata = false; x.SaveToken = false; x.TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(key), ValidateIssuer = false, ValidateAudience = false, ClockSkew = TimeSpan.Zero }; }); }