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); }
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); }
public static IServiceCollection AddConfiguration(this IServiceCollection services, ConfigurationProvider configuration) { services.AddSingleton <Configuration.IConfigurationProvider>(provider => configuration); return(services); }