예제 #1
0
        // 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>();
        }
예제 #2
0
        // 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
        }