コード例 #1
0
        public Startup(IHostingEnvironment env)
        {
            // Set up configuration sources.
            var builder = new ConfigurationBuilder();

            builder.SetBasePath(env.ConfigRootPath());
            builder.AddJsonFile("appsettings.json")
            .AddEnvironmentVariables();
            Configuration = builder.Build();
        }
コード例 #2
0
        // 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);
            });
        }