Files
administration/Program.cs

82 lines
2.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using administration.Models;
using administration.Services;
using Microsoft.EntityFrameworkCore;
using static DBConnectionController;
namespace administration
{
public class Program
{
public static void Main(string[] args)
{
// Charger les variables d'environnement depuis .env
DotNetEnv.Env.Load();
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<FinancesContext>(options =>
options.UseSqlServer(
Environment.GetEnvironmentVariable("ADMIN_DB_CONNECTION"),
sqlOptions => sqlOptions.EnableRetryOnFailure()
)
);
AppSettings.Initialize(builder.Configuration);
builder.Services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(300); // Durée d'expiration
options.Cookie.HttpOnly = true;
options.Cookie.IsEssential = true;
});
// Ajouter les services MVC
builder.Services.AddControllersWithViews();
builder.Services.AddHttpContextAccessor(); // obligatoire
builder.Services.AddScoped<IUserSessionService, UserSessionService>();
// Configurer la politique CORS pour autoriser l'accès depuis le frontend local
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowFrontend", policy =>
{
policy.WithOrigins("http://localhost:5018")
.AllowAnyHeader()
.AllowAnyMethod();
});
});
var app = builder.Build();
// Configuration du pipeline HTTP
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
// 💡 CORS doit être placé entre UseRouting et UseAuthorization
app.UseRouting();
app.UseCors("AllowFrontend");
app.UseSession(); // ✅ ici, avant lauthentification
app.UseAuthorization();
// Route par défaut
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
}
}
}