// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, CustomersDbSeeder customersDbSeeder) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseCors("AllowAnyOrigin"); app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, CustomersDbSeeder customersDbSeeder) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); // Serve wwwroot as root app.UseFileServer(); app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); //https://github.com/aspnet/JavaScriptServices/blob/dev/samples/angular/MusicStore/Startup.cs routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Home", action = "Index" }); }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, DockerCommandsDbSeeder dockerCommandsDbSeeder, CustomersDbSeeder customersDbSeeder) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseCookiePolicy(); app.UseSwagger(); // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.) // Visit http://localhost:5000/swagger app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); app.UseMvc(); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); dockerCommandsDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, CustomersDbSeeder customersDbSeeder) { app.UseCors("AllowAnyOrigin"); app.UseMvc(); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, CustomersDbSeeder customersDbSeeder, IAntiforgery antiforgery) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } // Manually handle setting XSRF cookie. Needed because HttpOnly // has to be set to false so that // Angular is able to read/access the cookie. app.Use((context, next) => { string path = context.Request.Path.Value; if (path != null && !path.ToLower().Contains("/api")) { var tokens = antiforgery.GetAndStoreTokens(context); context.Response.Cookies.Append("XSRF-TOKEN", tokens.RequestToken, new CookieOptions { HttpOnly = false } ); } return(next()); }); // This would need to be locked down as needed (very open right now) app.UseCors("AllowAllPolicy"); app.UseStaticFiles(); // Enable middleware to serve generated Swagger as a JSON endpoint app.UseSwagger(); // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.) // Visit http://localhost:5000/swagger app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Home", action = "Index" }); }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, DockerCommandsDbSeeder dockerCommandsDbSeeder, CustomersDbSeeder customersDbSeeder) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } // Serve /node_modules as a separate root (for packages that use other npm modules client side) // app.UseFileServer(new FileServerOptions() // { // // Set root of file server // FileProvider = new PhysicalFileProvider(Path.Combine(env.ContentRootPath, "node_modules")), // RequestPath = "/node_modules", // EnableDirectoryBrowsing = false // }); app.UseStaticFiles(); // Enable middleware to serve generated Swagger as a JSON endpoint app.UseSwagger(); // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.) // Visit http://localhost:5000/swagger app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); //https://github.com/aspnet/JavaScriptServices/blob/dev/samples/angular/MusicStore/Startup.cs routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Customers", action = "Index" }); // routes.MapRoute( // name: "spa-fallback", // template: "{*anything}", // defaults: new { controller="Customers", action="Index" }); }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); dockerCommandsDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, CustomersDbSeeder customersDbSeeder) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); app.UseCors("AllowAnyOrigin"); app.UseMvc(); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, CustomersDbSeeder customersDbSeeder, IAntiforgery antiforgery) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } //Manually handle setting XSRF cookie. Needed because HttpOnly has to be set to false so that //Angular is able to read/access the cookie. app.Use((context, next) => { if (context.Request.Method == HttpMethods.Get && (string.Equals(context.Request.Path.Value, "/", StringComparison.OrdinalIgnoreCase) || string.Equals(context.Request.Path.Value, "/home/index", StringComparison.OrdinalIgnoreCase))) { var tokens = antiforgery.GetAndStoreTokens(context); context.Response.Cookies.Append("XSRF-TOKEN", tokens.RequestToken, new CookieOptions() { HttpOnly = false }); } return(next()); }); app.UseStaticFiles(); app.UseSwagger(); // Visit http://localhost:59373/swagger app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Home", action = "Index" }); }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, DockerCommandsDbSeeder dockerCommandsDbSeeder, CustomersDbSeeder customersDbSeeder) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseCors("AllowAllPolicy"); app.UseStaticFiles(); if (!env.IsDevelopment()) { app.UseSpaStaticFiles(); } // Enable middleware to serve generated Swagger as a JSON endpoint app.UseSwagger(); // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.) // Visit http://localhost:5000/swagger app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); endpoints.MapControllerRoute( name: "default", pattern: "{controller}/{action}/{id?}"); // Handle redirecting client-side routes to Customers/Index route endpoints.MapFallbackToController("Index", "Customers"); }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); dockerCommandsDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, CustomersDbSeeder customersDbSeeder) { //app.UseFileServer(); app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Home", action = "Index" }); }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, DockerCommandsDbSeeder dockerCommandsDbSeeder, CustomersDbSeeder customersDbSeeder) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } // Enable middleware to serve generated Swagger as a JSON endpoint app.UseSwagger(); // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.) // Visit http://localhost:5000/swagger app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); //This would need to be locked down as needed (very open right now) app.UseCors((corsPolicyBuilder) => { corsPolicyBuilder.AllowAnyOrigin(); corsPolicyBuilder.AllowAnyMethod(); corsPolicyBuilder.AllowAnyHeader(); corsPolicyBuilder.WithExposedHeaders("X-InlineCount"); }); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); dockerCommandsDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, DockerCommandsDbSeeder dockerCommandsDbSeeder, CustomersDbSeeder customersDbSeeder) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); //app.UseDatabaseErrorPage(); app.UseBrowserLink(); } else { app.UseExceptionHandler("/Home/Error"); } // Enable middleware to serve generated Swagger as a JSON endpoint app.UseSwagger(); // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.) app.UseSwaggerUi(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); //https://github.com/aspnet/JavaScriptServices/blob/dev/samples/angular/MusicStore/Startup.cs //routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Customers", action = "Index" }); routes.MapRoute( name: "spa-fallback", template: "{*anything}", defaults: new { controller = "Customers", action = "Index" }); }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); dockerCommandsDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, CustomersDbSeeder customersDbSeeder) { app.UseStaticFiles(); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); // Handle redirecting client-side routes to Customers/Index route endpoints.MapFallbackToController("Index", "Home"); }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, DockerCommandsDbSeeder dockerCommandsDbSeeder, CustomersDbSeeder customersDbSeeder) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); } else { app.UseExceptionHandler("/Home/Error"); } // Enable middleware to serve generated Swagger as a JSON endpoint app.UseSwagger(); // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.) app.UseSwaggerUi(); //This would need to be locked down as needed (very open right now) app.UseCors((corsPolicyBuilder) => { corsPolicyBuilder.AllowAnyOrigin(); corsPolicyBuilder.AllowAnyMethod(); corsPolicyBuilder.AllowAnyHeader(); }); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); dockerCommandsDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory, CustomersDbSeeder customersDbSeeder) { // http://www.binaryintellect.net/articles/f4e492f7-9eec-46ba-b316-0584907e3e84.aspx //loggerFactory.AddConsole(Configuration.GetSection("Logging")); //loggerFactory.AddDebug(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } // Enable middleware to serve generated Swagger as a JSON endpoint app.UseSwagger(); // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.) // Visit http://localhost:5000/swagger app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "ASP.NET Core Customers API"); }); // Add this line; you'll need `using Serilog;` up the top, too app.UseSerilogRequestLogging(); app.UseRouting(); //disable CORS app.UseCors("AllowAnyOrigin"); app.UseEndpoints(e => { e.MapControllers(); }); // Use the Serilog request logging middleware to log HTTP requests. app.UseSerilogRequestLogging(); //seed data customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, CustomersDbSeeder customersDbSeeder) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); } else { app.UseExceptionHandler("/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseSpaStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller}/{action=Index}/{id?}"); }); app.UseSpa(spa => { // To learn more about options for serving an Angular SPA from ASP.NET Core, // see https://go.microsoft.com/fwlink/?linkid=864501 spa.Options.SourcePath = "ClientApp"; if (env.IsDevelopment()) { spa.UseAngularCliServer(npmScript: "start"); } }); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, DockerCommandsDbSeeder dockerCommandsDbSeeder, CustomersDbSeeder customersDbSeeder) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); // Enable middleware to serve generated Swagger as a JSON endpoint app.UseSwagger(); // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.) // Visit http://localhost:5000/swagger app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); app.UseCors("AllowAllPolicy"); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Customers", action = "Index" }); }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); dockerCommandsDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, CustomersDbSeeder customersDbSeeder) { app.UseCors("AllowAnyOrigin"); // Enable middleware to serve generated Swagger as a JSON endpoint app.UseSwagger(); // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.) // Visit http://localhost:5000/swagger app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, CustomersDbSeeder customersDbSeeder) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseSwagger(); // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.) // Visit http://localhost:5000/swagger app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); //app.UseHttpsRedirection(); //This would need to be locked down as needed (very open right now) app.UseCors((corsPolicyBuilder) => { corsPolicyBuilder.AllowAnyOrigin(); corsPolicyBuilder.AllowAnyMethod(); corsPolicyBuilder.AllowAnyHeader(); corsPolicyBuilder.WithExposedHeaders("X-InlineCount"); }); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, CustomersDbSeeder customersDbSeeder, IAntiforgery antiforgery) { //Manually handle setting XSRF cookie. Needed because HttpOnly has to be set to false so that //Angular is able to read/access the cookie. app.Use((context, next) => { if (context.Request.Method == HttpMethods.Get && (string.Equals(context.Request.Path.Value, "/", StringComparison.OrdinalIgnoreCase) || string.Equals(context.Request.Path.Value, "/home/index", StringComparison.OrdinalIgnoreCase))) { var tokens = antiforgery.GetAndStoreTokens(context); context.Response.Cookies.Append("XSRF-TOKEN", tokens.RequestToken, new CookieOptions() { HttpOnly = false }); } return(next()); }); // Serve wwwroot as root app.UseFileServer(); // Serve /node_modules as a separate root (for packages that use other npm modules client side) // Added for convenience for those who don't want to worry about running 'gulp copy:libs' // Only use in development mode!! app.UseFileServer(new FileServerOptions() { // Set root of file server FileProvider = new PhysicalFileProvider(Path.Combine(env.ContentRootPath, "node_modules")), RequestPath = "/node_modules", EnableDirectoryBrowsing = false }); //This would need to be locked down as needed (very open right now) app.UseCors((corsPolicyBuilder) => { corsPolicyBuilder.AllowAnyOrigin(); corsPolicyBuilder.AllowAnyMethod(); corsPolicyBuilder.AllowAnyHeader(); }); app.UseStaticFiles(); // Enable middleware to serve generated Swagger as a JSON endpoint app.UseSwagger(); // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.) // Visit http://localhost:5000/swagger app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Home", action = "Index" }); }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, DockerCommandsDbSeeder dockerCommandsDbSeeder, CustomersDbSeeder customersDbSeeder) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } //app.UseIISPlatformHandler(options => options.AuthenticationDescriptions.Clear()); // Route all unknown requests to app root // app.Use(async (context, next) => // { // await next(); // // Handle Angular routes which won't work on the server-side // if (context.Response.StatusCode == 404 && !Path.HasExtension(context.Request.Path.Value)) // { // context.Request.Path = "/index.html"; // await next(); // } // }); // Serve wwwroot as root app.UseFileServer(); // Serve /node_modules as a separate root (for packages that use other npm modules client side) app.UseFileServer(new FileServerOptions() { // Set root of file server FileProvider = new PhysicalFileProvider(Path.Combine(env.ContentRootPath, "node_modules")), RequestPath = "/node_modules", EnableDirectoryBrowsing = false }); app.UseStaticFiles(); // Enable middleware to serve generated Swagger as a JSON endpoint app.UseSwagger(); // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.) app.UseSwaggerUi(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); //https://github.com/aspnet/JavaScriptServices/blob/dev/samples/angular/MusicStore/Startup.cs // routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Customers", action = "Index" }); // routes.MapRoute( // name: "spa-fallback", // template: "{*anything}", // defaults: new { controller="Customers", action="Index" }); }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); dockerCommandsDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, CustomersDbSeeder customersDbSeeder, IAntiforgery antiforgery) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } // This would need to be locked down as needed (very open right now) app.UseCors("AllowAllPolicy"); app.UseStaticFiles(); if (!env.IsDevelopment()) { app.UseSpaStaticFiles(); } // Enable middleware to serve generated Swagger as a JSON endpoint app.UseSwagger(); // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.) // Visit http://localhost:5000/swagger app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); // Manually handle setting XSRF cookie. Needed because HttpOnly // has to be set to false so that Angular is able to read/access the cookie. app.Use((context, next) => { string path = context.Request.Path.Value; if (path != null && !path.ToLower().Contains("/api")) { var tokens = antiforgery.GetAndStoreTokens(context); context.Response.Cookies.Append("XSRF-TOKEN", tokens.RequestToken, new CookieOptions { HttpOnly = false } ); } return(next()); }); // For 3.0 app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); app.UseSpa(spa => { // To learn more about options for serving an Angular SPA from ASP.NET Core, // see https://go.microsoft.com/fwlink/?linkid=864501 spa.Options.SourcePath = "Client"; if (env.IsDevelopment()) { // spa.UseAngularCliServer(npmScript: "start"); } }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }