Last active
October 11, 2021 02:21
-
-
Save RickStrahl/9b01d6b217ca469fdab523b6bd9473cd to your computer and use it in GitHub Desktop.
Minimal API Startup in 6.0 for ASP.NET Core application - Auto-Refresh not working for Razor
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"ProductRegistrationService": { | |
"commandName": "Project", | |
"dotnetRunMessages": true, | |
"environmentVariables": { | |
"ASPNETCORE_ENVIRONMENT": "Development" | |
}, | |
"hotReloadEnabled": false, | |
"applicationUrl": "https://localhost:5001;http://localhost:5000" | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using LicensingService.Configuration; | |
using Microsoft.AspNetCore.Authentication.Cookies; | |
using Newtonsoft.Json.Serialization; | |
using Westwind.Licensing; | |
using Westwind.Utilities.Data; | |
var builder = WebApplication.CreateBuilder(args); | |
var services = builder.Services; | |
var configuration = builder.Configuration; | |
var host = builder.Host; | |
var config = new ApplicationConfiguration(); | |
configuration.Bind("Application", config); | |
services.AddSingleton(config); | |
App.Configuration = config; | |
var licenseConfig = new LicenseConfiguration(); | |
configuration.Bind("Licensing", licenseConfig); | |
if (string.IsNullOrEmpty(licenseConfig.ConnectionString)) | |
licenseConfig.ConnectionString = config.LicenseServerConnectionString; | |
LicenseConfiguration.Current = licenseConfig; | |
services.AddSingleton(LicenseConfiguration.Current); | |
services.AddTransient<LicenseSqlDataManager>(); | |
// background startups | |
Task.Run(() => | |
{ | |
var sql = new SqlDataAccess(LicenseConfiguration.Current.ConnectionString); | |
sql.ExecuteScalar("select top 1 username from users"); | |
}); | |
//services.AddLiveReload(config => | |
//{ | |
// config.LiveReloadEnabled = false ; | |
//}); | |
services.AddAuthentication(options => | |
{ | |
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; | |
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme; | |
options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme; | |
}).AddCookie(options => { options.LoginPath = "/administration/login"; }); | |
// for ASP.NET Core 3.x and later, add Runtime Razor Compilation if using anything Razor | |
services.AddRazorPages(options => | |
{ | |
options.Conventions.AuthorizeFolder("/administration"); | |
options.Conventions.AllowAnonymousToPage("/administration/login"); | |
}); | |
//.AddRazorRuntimeCompilation(); | |
// Add services to the container. | |
builder.Services.AddRazorPages(); | |
builder.Services.AddControllers() | |
// Use classic JSON | |
.AddNewtonsoftJson(opt => | |
{ | |
var resolver = opt.SerializerSettings.ContractResolver; | |
if (resolver != null) | |
{ | |
var res = resolver as DefaultContractResolver; | |
res.NamingStrategy = new CamelCaseNamingStrategy(); | |
} | |
opt.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; | |
if ( builder.Environment.IsDevelopment()) | |
opt.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented; | |
}); | |
var app = builder.Build(); | |
// Configure the HTTP request pipeline. | |
if (!app.Environment.IsDevelopment()) | |
{ | |
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.UseRouting(); | |
app.UseAuthorization(); | |
app.MapRazorPages(); | |
app.Run(); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment