2021-12-15 13:54:01 +01:00

90 lines
2.2 KiB
C#

using HackerNet.Infrastructure.AspNet;
using HackerNet.Infrastructure.Repositories.EntityFramework;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc.Authorization;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
//ServiceCollectionExtensions.AddHackerNetServices(builder.Services);
builder.Services
.AddIdentity<IdentityUser, IdentityRole>(o =>
{
o.Password.RequireNonAlphanumeric = false;
})
.AddEntityFrameworkStores<HackerContext>();
builder.Services.AddAuthorization(o =>
{
// o.AddPolicy("IsAdmin", builder => builder
// .RequireRole("Admin")
// .RequireAuthenticatedUser()
// .RequireClaim()
// .AddRequirements()
// .RequireUserName("julien"));
});
builder.Services
//.AddHackerNetServicesMemory()
.AddHackerNetServicesEntityFramework(builder.Configuration)
.AddControllersWithViews(o =>
{
// o.Filters.Add(new AuthorizeFilter());
//o.Filters.Add<CustomExceptionFilter>();
});
var app = builder.Build();
app.MigrateDatabase();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
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.Use(async (ctx, next) =>
{
var logger = ctx.RequestServices.GetRequiredService<ILogger<Program>>();
logger.LogDebug(">>>>>>>>>>>>>> Début requête");
try
{
await next();
}
catch (Exception e)
{
// Envoi app insights ou autre
logger.LogError(e.Message);
throw e;
}
logger.LogDebug("<<<<<<<<<<<<<< Fin requête");
});
app.Use(async (ctx, next) =>
{
var logger = ctx.RequestServices.GetRequiredService<ILogger<Program>>();
logger.LogDebug(">>>>>>>>>>>>>> Début requête 2");
await next();
logger.LogDebug("<<<<<<<<<<<<<< Fin requête 2");
});
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseStatusCodePagesWithRedirects("/{0}");
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Links}/{action=Index}/{id?}");
app.Run();