// This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { var contentRoot = Path.Combine( Configuration.GetValue <string>(WebHostDefaults.ContentRootKey), CurrentEnvironment.IsDevelopment() ? "DevResources" : "Resources" ); var secretsFilePath = Path.Combine(contentRoot, "secrets.json"); var secretsProvider = DefaultSecretsProvider.LoadFromFile(secretsFilePath); services.AddSingleton <IConfigProvider>(new DefaultConfigProvider(contentRoot, secretsProvider)); var clientsFile = Path.Combine(contentRoot, "clients.json"); var clientsProvider = new FileBasedClientsProvider(clientsFile); services.AddSingleton <IClientsProvider>(clientsProvider); services.AddSingleton <IAuthorizationService>(new AuthorizationService(clientsProvider)); services.AddAuthentication() .AddScheme <AuthenticationSchemeOptions, DefaultBasicIdentityService>( BasicAuthSchemaName.Name, null); services.AddUrlBasedHttpMetrics(); services.AddControllers(opt => opt.AddExceptionProcessing()); services.AddRazorPages(); }