public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider services) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseStaticFiles(new StaticFileOptions { RequestPath = "/blazor", FileProvider = new PhysicalFileProvider( Path.Combine(Directory.GetCurrentDirectory(), "../BlazorApp/wwwroot")) }); app.UseSession(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); endpoints.MapControllerRoute( name: "angular_fallback", pattern: "{target:regex(store|cart|checkout)}/{*catchall}", defaults: new { controller = "Home", action = "Index" }); endpoints.MapControllerRoute( name: "blazor_integration", pattern: "/blazor/{*path:nonfile}", defaults: new { controller = "Home", action = "Blazor" }); endpoints.MapRazorPages(); }); app.Map("/blazor", opts => opts.UseClientSideBlazorFiles <BlazorApp.Startup>()); app.UseClientSideBlazorFiles <BlazorApp.Startup>(); app.UseSwagger(); app.UseSwaggerUI(options => { options.SwaggerEndpoint("/swagger/v1/swagger.json", "SportsStore API"); }); app.UseSpa(spa => { string strategy = Configuration .GetValue <string>("DevTools:ConnectionStrategy"); if (strategy == "proxy") { spa.UseProxyToSpaDevelopmentServer("http://127.0.0.1:4200"); } else if (strategy == "managed") { spa.Options.SourcePath = "../ClientApp"; spa.UseAngularCliServer("start"); } }); SeedData.SeedDatabase(services.GetRequiredService <DataContext>()); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider services, IAntiforgery antiforgery, IHostApplicationLifetime lifetime) { 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.UseSession(); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.Use(nextDelegate => context => { string path = context.Request.Path.Value; string[] directUrls = { "/admin", "/store", "/cart", "checkout" }; if (path.StartsWith("/api") || string.Equals("/", path) || directUrls.Any(url => path.StartsWith(url))) { var tokens = antiforgery.GetAndStoreTokens(context); context.Response.Cookies.Append("XSRF-TOKEN", tokens.RequestToken, new CookieOptions() { HttpOnly = false, Secure = false, IsEssential = true }); } return(nextDelegate(context)); }); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); endpoints.MapRazorPages(); endpoints.MapControllerRoute( name: "angular_fallback", pattern: "{target:regex(admin|store|cart|checkout):nonfile}/{*catchall}", defaults: new { controller = "Home", action = "Index" }); }); if ((Configuration["INITDB"] ?? "false") == "true") { System.Console.WriteLine("Preparing Database..."); SeedData.SeedDatabase(services.GetRequiredService <DataContext>()); IdentitySeedData.SeedDatabase(services).Wait(); System.Console.WriteLine("Database Preparation Complete"); lifetime.StopApplication(); } }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider serviceProvider) { 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(); // Enable sessions in the application. app.UseSession(); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); // Allowing direct navigation during development. // Note: if spaces are within regex(), then the pattern does NOT match. // Note: "nonfile" is required because the name of the file that will be requested // when the dynamic module loaded is admin-admin-module.js // and CARE MUST BE TAKEN not to direct requests for this file to MVC. endpoints.MapControllerRoute( name: "angular_fallback", pattern: "{target:regex(admin|store|cart|checkout):nonfile}/{*catchall}", defaults: new { controller = "Home", action = "Index" }); // This is the recommended place to use SignalR MapHub<>. // TypeScript will use the relative path specified here. // e.g. const signalRHubUrl = "/chat"; // this.hubConnection = new HubConnectionBuilder() // .configureLogging(LogLevel.Information) // .withUrl(signalRHubUrl) // .build(); endpoints.MapHub <ChatHub>("/chat"); }); // Prepare WebSockets. var webSocketOptions = new WebSocketOptions() { KeepAliveInterval = TimeSpan.FromSeconds(120), ReceiveBufferSize = 4 * 1024 }; app.UseWebSockets(webSocketOptions); app.UseSwagger(); app.UseSwaggerUI(options => { options.SwaggerEndpoint("/swagger/v1/swagger.json", "SportsStore API"); }); app.UseSpa(spa => { string strategy = Configuration.GetValue <string>("DevTools:ConnectionStrategy"); if (strategy == "proxy") { Uri angularServerUri = new Uri("http://127.0.0.1:4200"); spa.UseProxyToSpaDevelopmentServer(angularServerUri); } else if (strategy == "managed") { spa.Options.SourcePath = "../ClientApp"; spa.UseAngularCliServer(npmScript: "start"); } else { // Do nothing. } }); // Seed the database with initial data if it is empty. DataContext dataContext; dataContext = serviceProvider.GetRequiredService <DataContext>(); SeedData.SeedDatabase(dataContext); // Seed the identity database. // Wait() ensures that the database context remains available while the database is seeded. IdentitySeedData.SeedDatabase(serviceProvider).Wait(); }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider services) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); app.UseHsts(); } // app.UseHttpsRedirection(); app.UseStaticFiles(new StaticFileOptions() { FileProvider = new PhysicalFileProvider(Path.Combine( Directory.GetCurrentDirectory(), @"Resources")), RequestPath = new PathString("/Resources") }); app.UseSession(); app.UseRouting(); // app.UseCors(builder => // { // builder.WithOrigins("http://127.0.0.1:4200") // .SetIsOriginAllowedToAllowWildcardSubdomains() // .AllowAnyHeader() // .AllowAnyMethod(); // }); app.UseAuthentication(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); endpoints.MapControllerRoute( name: "angular_fallback", pattern: "{target:regex(store|cart|checkout)}/{*catchall}", defaults: new { controller = "Home", action = "Index" }); endpoints.MapRazorPages(); }); app.UseSwagger(); app.UseSwaggerUI(options => { options.SwaggerEndpoint("/swagger/v1/swagger.json", "SportsStore API"); }); app.UseSpa(spa => { string strategy = Configuration .GetValue <string>("DevTools:ConnectionStrategy"); if (strategy == "proxy") { spa.UseProxyToSpaDevelopmentServer("http://127.0.0.1:4200"); } else if (strategy == "managed") { spa.Options.SourcePath = "../ClientApp"; spa.UseAngularCliServer("start"); } }); SeedData.SeedDatabase(services.GetRequiredService <DataContext>()); IdentitySeedData.SeedDatabase(services).Wait(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider services, IAntiforgery antiforgery, IHostApplicationLifetime lifetime) { 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.UseStaticFiles(new StaticFileOptions { RequestPath = "/blazor", FileProvider = new PhysicalFileProvider( Path.Combine(Directory.GetCurrentDirectory(), "../BlazorApp/wwwroot")) }); app.UseStaticFiles(new StaticFileOptions { RequestPath = "", FileProvider = new PhysicalFileProvider( Path.Combine(Directory.GetCurrentDirectory(), "./wwwroot/app")) }); app.UseSession(); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.Use(nextDelegate => context => { string path = context.Request.Path.Value; string[] directUrls = { "/admin", "/store", "/cart", "checkout" }; if (path.StartsWith("/api") || string.Equals("/", path) || directUrls.Any(url => path.StartsWith(url))) { var tokens = antiforgery.GetAndStoreTokens(context); context.Response.Cookies.Append("XSRF-TOKEN", tokens.RequestToken, new CookieOptions() { HttpOnly = false, Secure = false, IsEssential = true }); } return(nextDelegate(context)); }); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); endpoints.MapControllerRoute( name: "angular_fallback", pattern: "{target:regex(admin|store|cart|checkout):nonfile}/{*catchall}", defaults: new { controller = "Home", action = "Index" }); endpoints.MapControllerRoute( name: "blazor_integration", pattern: "/blazor/{*path:nonfile}", defaults: new { controller = "Home", action = "Blazor" }); endpoints.MapRazorPages(); }); //app.Map("/blazor", opts => // opts.UseClientSideBlazorFiles<BlazorApp.Startup>()); app.UseClientSideBlazorFiles <BlazorApp.Startup>(); //app.UseSwagger(); //app.UseSwaggerUI(options => { // options.SwaggerEndpoint("/swagger/v1/swagger.json", // "SportsStore API"); //}); //app.UseSpa(spa => { // string strategy = Configuration // .GetValue<string>("DevTools:ConnectionStrategy"); // if (strategy == "proxy") { // spa.UseProxyToSpaDevelopmentServer("http:/127.0.0.1:4200"); // } else if (strategy == "managed") { // spa.Options.SourcePath = "../ClientApp"; // spa.UseAngularCliServer("start"); // } //}); //SeedData.SeedDatabase(services.GetRequiredService<DataContext>()); //IdentitySeedData.SeedDatabase(services).Wait(); if ((Configuration["INITDB"] ?? "false") == "true") { System.Console.WriteLine("Preparing Database..."); SeedData.SeedDatabase(services.GetRequiredService <DataContext>()); IdentitySeedData.SeedDatabase(services).Wait(); System.Console.WriteLine("Database Preparation Complete"); lifetime.StopApplication(); } }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider services) { 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.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); // Force sent it to the Home controller when accessing any of the new Angular applications's URLs //(routes) we just defined in the ClientApp therefore leveraging the Razor view and its associated layout. endpoints.MapControllerRoute( name: "angular_fallback", //pattern: "{target:regex(table|detail)}/{*catchall}", pattern: "{target:regex(store)}/{*catchall}", defaults: new { controller = "Home", action = "Index" }); endpoints.MapRazorPages(); }); app.UseSwagger(); app.UseSwaggerUI(options => { options.SwaggerEndpoint("/swagger/v1/swagger.json", "SportsStore API"); }); // Managed strategy: To have .NET Core launch and pass previously unhandled requests to Angular. // app.UseSpa(spa => { // spa.Options.SourcePath = "../ClientApp"; // spa.UseAngularCliServer("start"); // }); app.UseSpa(spa => { string strategy = Configuration .GetValue <string>("DevTools:ConnectionStrategy"); if (strategy == "proxy") { spa.UseProxyToSpaDevelopmentServer("http://127.0.0.1:4200"); } else if (strategy == "managed") { spa.Options.SourcePath = "../ClientApp"; spa.UseAngularCliServer("start"); } }); SeedData.SeedDatabase(services.GetRequiredService <DataContext>()); }