コード例 #1
0
ファイル: Startup.cs プロジェクト: rodasdaniel/credit.service
 // This method gets called by the runtime. Use this method to add services to the container.
 public void ConfigureServices(IServiceCollection services)
 {
     // (1) - Dependency Inyection
     DependencyInjectionConfig.Register(services);
     // (2) - AutoMapper Configuration
     AutoMapperConfig.Register(services);
     // (3) - Swagger Configuration
     SwaggerConfig.Register(services);
     // (4) - Setting Configuration
     AppSettingsConfig.Register(services, _env, Configuration);
     // (5) -
     services.AddControllers();
     // (6) - Filters configurations
     FiltersConfig.Register(services);
 }
コード例 #2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddIdentity <User, IdentityRole>()
            .AddEntityFrameworkStores <smartFundsDbContext>()
            .AddDefaultTokenProviders();

            services.Configure <IdentityOptions>(options =>
            {
                // Password settings.
                options.Password.RequireDigit           = false;
                options.Password.RequireLowercase       = false;
                options.Password.RequireNonAlphanumeric = false;
                options.Password.RequireUppercase       = false;
                options.Password.RequiredLength         = 8;
                options.Password.RequiredUniqueChars    = 1;

                // Lockout settings.
                options.Lockout.DefaultLockoutTimeSpan  = TimeSpan.FromSeconds(60);
                options.Lockout.MaxFailedAccessAttempts = 3;
                options.Lockout.AllowedForNewUsers      = true;

                // User settings.
                options.User.AllowedUserNameCharacters =
                    "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
                options.User.RequireUniqueEmail = false;
            });

            services.Configure <DataProtectionTokenProviderOptions>(options =>
            {
                options.TokenLifespan = TimeSpan.FromDays(1);
            });

            services.Configure <SecurityStampValidatorOptions>(option =>
            {
                option.ValidationInterval = TimeSpan.FromSeconds(0);
            });

            services.ConfigureApplicationCookie(options =>
            {
                // Cookie settings
                options.Cookie.HttpOnly = true;
                options.ExpireTimeSpan  = TimeSpan.FromMinutes(30);

                options.LoginPath         = "/Admin/Login";
                options.AccessDeniedPath  = "/error/access-denied";
                options.SlidingExpiration = true;
            });

            services.AddAuthorization(options =>
            {
                options.AddPolicy("OnlyAccountantAccess", policy => policy.RequireRole(RoleName.Accountant));
                options.AddPolicy("OnlyAdminAccess", policy => policy.RequireRole(RoleName.Admin));
                options.AddPolicy("AdminManagerAccess", policy => policy.RequireRole(RoleName.Admin, RoleName.CustomerManager, RoleName.InvestmentManager, RoleName.Accountant));
                options.AddPolicy("CustomerManagerNotAccess", policy => policy.RequireRole(RoleName.Admin, RoleName.InvestmentManager, RoleName.Accountant));
                options.AddPolicy("CustomerAccess", policy => policy.RequireRole(RoleName.Customer));
                options.AddPolicy("AccountantInvestmentManagerAccess", policy => policy.RequireRole(RoleName.InvestmentManager, RoleName.Accountant));
                options.AddPolicy("AdminInvestmentManagerAccess", policy => policy.RequireRole(RoleName.Admin, RoleName.InvestmentManager));
                options.AddPolicy("AdminAccountantAccess", policy => policy.RequireRole(RoleName.Admin, RoleName.Accountant));
            });

            services.AddAutoMapper(Assembly.GetAssembly(typeof(ServiceProfile)));
            services.AllowAllCors();
            services.AddMvc()
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
            .AddJsonOptions(options =>
            {
                options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
            });

            IocConfig.Register(services, Configuration);
            AppSettingsConfig.Register(services, Configuration);
            services.AddHangfire(x => x.UseSqlServerStorage(Configuration.GetConnectionString(Constants.Database.smartFundsConnectionStringName)));

            services.UseJwtAuthentication(new DigitalAppsAudience(Configuration));
        }