using AcdiuTools.Services; var builder = WebApplication.CreateBuilder(args); // 1. 添加 MVC 控制器支持 builder.Services.AddControllersWithViews(); // 2. 注册 HttpContextAccessor (之前已添加,确保存在) builder.Services.AddHttpContextAccessor(); // 3. 注册 Session 服务 // AddSession 必须放在 AddControllersWithViews 之后或之前均可,但必须在 Build 之前 builder.Services.AddSession(options => { options.IdleTimeout = TimeSpan.FromMinutes(30); // Session 过期时间 options.Cookie.HttpOnly = true; options.Cookie.IsEssential = true; // 即使未同意 Cookie 策略也发送(用于功能必需) }); // 注册主题服务 builder.Services.AddScoped(); var app = builder.Build(); // 4. 配置中间件管道 // UseSession 必须放在 UseRouting 之后,UseAuthorization 和 MapControllers 之前 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.UseHttpsRedirection(); app.UseRouting(); // 【关键】启用 Session 中间件 app.UseSession(); app.UseAuthorization(); app.MapStaticAssets(); app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}") .WithStaticAssets(); app.Run();