// 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_1); services.Configure <IISOptions>(options => { options.ForwardClientCertificate = false; }); //Dependency injection register service services.AddScoped <ICoreService, CoreService>(); services.AddScoped <IBusinessService, BusinessService>(); //Register Request Header Policy services.AddCors(options => { options.AddPolicy("CorsPolicy", builder => builder .AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials().Build()); }); //Register Json Web Token (JWT) services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters() { ValidateAudience = false, ValidateIssuer = false, ValidateLifetime = true, ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey( Encoding.UTF8.GetBytes(Configuration["Jwt:PrivateKey"])) }; }); //Register Permission Handler services.AddAuthorization(options => { var listPermision = PermissionRegister.GetListPermission(); foreach (var permission in listPermision) { options.AddPolicy(permission, policy => policy.Requirements.Add(new PermissionRequirement(permission))); } }); services.AddScoped <IAuthorizationHandler, PermissionHandler>(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllers(); #region Register Json Web Token (JWT) services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(option => { option.TokenValidationParameters = new TokenValidationParameters() { ValidateAudience = false, ValidateIssuer = false, ValidateLifetime = true, ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey( Encoding.UTF8.GetBytes(Configuration["Jwt:PrivateKey"])) }; }); #endregion #region DI Service services.AddScoped <ICoreService, CoreService>(); services.AddScoped <IBusinessService, BusinessService>(); #endregion #region Register Swagger services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Version = "v1", Title = "MyProject API", Description = "A simple example ASP.NET Core Web API", //TermsOfService = new Uri("https://example.com/terms"), //Contact = new OpenApiContact //{ // Name = "Shayne Boyer", // Email = string.Empty, // Url = new Uri("https://twitter.com/spboyer"), //}, //License = new OpenApiLicense //{ // Name = "Use under LICX", // Url = new Uri("https://example.com/license"), //} }); }); #endregion #region Register policy services.AddAuthorization(options => { var listPermision = PermissionRegister.GetListPermission(); foreach (var permission in listPermision) { options.AddPolicy(permission, policy => policy.Requirements.Add(new PermissionRequirement(permission))); } }); services.AddScoped <IAuthorizationHandler, PermissionHandler>(); #endregion }