示例#1
0
        public static IServiceCollection AddInternals(
            this IServiceCollection services,
            ConfigurationProvider configurationProvider,
            IConfigurationRoot configuration)
        {
            services.AddScoped <INotificator, Notificator>();
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            services.AddSingleton <IActionContextAccessor, ActionContextAccessor>();
            services.AddSingleton <IIdentityHelper, IdentityHelper>();
            services.AddSingleton <Data.Configuration.IDataConfigurationProvider>(configurationProvider);
            services.AddScoped <ISeeder>(provider => new Seeder(
                                             provider.GetService <Data.Configuration.IDataInitializer>(),
                                             provider.GetService <IIdentityService>(),
                                             provider.GetService <IWebsiteService>(),
                                             provider.GetService <IIdentityRepository>(),
                                             configuration));

            return(services);
        }
示例#2
0
        public static IServiceCollection AddAuthenticationAndAuthorization(this IServiceCollection services, ConfigurationProvider configuration)
        {
            services.AddAuthentication(opt =>
            {
                opt.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                opt.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(cfg =>
            {
                cfg.RequireHttpsMetadata      = false;
                cfg.SaveToken                 = true;
                cfg.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateAudience         = true,
                    ValidateLifetime         = true,
                    ValidateIssuer           = true,
                    ValidateIssuerSigningKey = true,
                    ValidIssuer      = configuration.TokenConfiguration.Issuer,
                    ValidAudience    = configuration.TokenConfiguration.Audience,
                    IssuerSigningKey = configuration.TokenConfiguration.SigningKey
                };
            });

            services.AddAuthorization(options =>
            {
                options.AddPolicy(IdentityPolicies.RequireAdministratorRole, policy => policy.RequireRole(IdentityRoles.Administrator));
            });

            return(services);
        }
示例#3
0
 public static IServiceCollection AddConfiguration(this IServiceCollection services, ConfigurationProvider configuration)
 {
     services.AddSingleton <Configuration.IConfigurationProvider>(provider => configuration);
     return(services);
 }