public Startup(IHostingEnvironment env) { // Set up configuration sources. var builder = new ConfigurationBuilder(); builder.SetBasePath(env.ConfigRootPath()); builder.AddJsonFile("appsettings.json") .AddEnvironmentVariables(); Configuration = builder.Build(); }
// Configure is called after ConfigureServices is called. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { // // Initialize the Environment // Core.Environment.Host = AdminHost.Instance; Core.Environment.Hal = new HalService(); AdminHost.Instance.Add(this); // Context accessor HttpHelper.HttpContextAccessor = app.ApplicationServices.GetRequiredService <IHttpContextAccessor>(); // Initalize Config ConfigurationHelper.Initialize(Path.Combine(env.ConfigRootPath(), "appsettings.json")); ConfigurationHelper.Config = Configuration; // // Error handling // app.UseMiddleware <ErrorHandler>(); // // Ensure SSL // app.UseMiddleware <SSLCheck>(); // // Static files // app.UseStaticFiles(); // // CORS // app.UseCrossOrigin("/" + Globals.API_PATH); // // Authentication // app.UseBearerAuthentication(); // // Authorization // app.UseUrlAuthorization(new UrlAuthorizatonOptions { Path = "/" + Globals.API_PATH, // /api AuthenticationScheme = AspNetCore.Authentication.JwtBearer.JwtBearerDefaults.AuthenticationScheme, PolicyName = "AccessToken" }); app.UseUrlAuthorization(new UrlAuthorizatonOptions { Path = "/" + Globals.SECURITY_PATH, // /security AuthenticationScheme = "NTLM", PolicyName = "AdministrativeGroup" }); // // Disable client cache // app.Use(async(context, next) => { context.Response.Headers[Net.Http.Headers.HeaderNames.CacheControl] = "public, max-age=0"; await next.Invoke(); }); // // Allow HEAD requests as GET app.UseMiddleware <HeadTransform>(); // // Add MVC // app.UseMvc(routes => { AdminHost.Instance.InitiateModules(routes, app); InitiateFeatures(routes); // Ensure routes meant to be extended do not block child routes SortRoutes(routes); }); }