You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core Identity浏览器关闭后Cookie未被清除的问题

问题解决办法

1. 显式配置Identity应用Cookie

在ConfigureServices方法中,添加对Identity应用Cookie的显式配置,确保Cookie为会话级(浏览器关闭即失效):

修改你的AddIdentity代码块,追加ConfigureApplicationCookie配置:

services.AddIdentity<AppUser, IdentityRole>()
    .AddEntityFrameworkStores<AppIdentityDbContext>()
    .AddDefaultTokenProviders();

// 显式配置应用Cookie
services.ConfigureApplicationCookie(options =>
{
    // 设置Cookie为会话级,浏览器关闭即过期
    options.Cookie.IsPersistent = false;
    // 设置活跃状态下的过期时长(可选,比如30分钟无操作则过期)
    options.ExpireTimeSpan = TimeSpan.FromMinutes(30);
    // 活跃操作时自动刷新过期时间
    options.SlidingExpiration = true;
    // 确保Cookie仅通过HTTP访问,提升安全性
    options.Cookie.HttpOnly = true;
    // HTTPS环境下强制使用Secure Cookie
    options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
});

2. 验证登录调用参数

确认你的PasswordSignInAsync调用中isPersistent参数确实为false(你的代码已正确设置,此步骤为二次校验):

Microsoft.AspNetCore.Identity.SignInResult result = await signInManager.PasswordSignInAsync(appUser, login.Password, isPersistent:false, lockoutOnFailure:false);

3. 检查浏览器设置

部分浏览器的“恢复会话”“保存打开标签页”功能会在重启浏览器时恢复会话Cookie,可尝试:

  • 关闭浏览器时完全退出(而非仅关闭窗口)
  • 在浏览器隐私设置中禁用“恢复会话”功能
  • 使用隐私模式测试,排除浏览器缓存影响

内容的提问来源于stack exchange,提问作者bezshah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 21:31:01