// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.RequireHttpsMetadata = false; options.SaveToken = true; options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = Configuration["Jwt:Issuer"], ValidAudience = Configuration["Jwt:Audience"], IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:SecretKey"])), ClockSkew = TimeSpan.Zero }; }); services.AddAuthorization(config => { config.AddPolicy(Policy.Admin, Policy.AdminPolicy()); config.AddPolicy(Policy.User, Policy.UserPolicy()); }); services.AddControllersWithViews(); // In production, the Angular files will be served from this directory services.AddSpaStaticFiles(configuration => { configuration.RootPath = "ClientApp/dist"; }); services.AddTransient <IUnitOfWork, UnitOfWork>(); }
public void ConfigureServices(IServiceCollection services) { // MVC services.AddControllersWithViews(config => { var policy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build(); config.Filters.Add(new AuthorizeFilter(policy)); }).AddRazorRuntimeCompilation(); services.Configure <ForwardedHeadersOptions>(options => { options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto; }); // Database services.AddDbContext <AppDbContext>(options => { options.UseSqlServer(Environment.GetEnvironmentVariable("HealthHerb")); }); // Identity services .AddIdentity <BaseUser, IdentityRole>( options => { options.Password.RequireDigit = false; options.Password.RequireUppercase = false; options.Password.RequiredUniqueChars = 0; options.Password.RequireLowercase = false; options.Password.RequireNonAlphanumeric = false; }) .AddEntityFrameworkStores <AppDbContext>() .AddDefaultTokenProviders(); // Authorization services.AddAuthorization(options => { options.AddPolicy(Policy.Admin, Policy.AdminPolicy()); }); services.Configure <FormOptions>(options => options.MultipartBodyLengthLimit = long.MaxValue); // or other given limit // Dependency Injection services.AddScoped <AppDbContext>(); services.AddScoped(typeof(ICrud <>), typeof(Crud <>)); services.AddSingleton(typeof(FileManager)); }