C# Cookie认证选项配置方法 C#如何配置Cookie的过期和安全策略-C#.Net教程

ExpireTimeSpan 控制 Cookie 的绝对过期时间(服务端拒绝验证),而非浏览器自动删除时间;其实际生效受 SlidingExpiration、CookiePolicy、SecurePolicy、HttpOnly 和 SameSite 等配置共同影响,需按环境动态设置并显式启用安全标志。

CookieAuthenticationOptions.ExpireTimeSpan 控制的是什么过期时间

ExpireTimeSpan 设置的是 Cookie 的“绝对过期时间”,即从签发时刻起,经过指定时长后,服务端将拒绝该 Cookie(即使客户端仍携带)。它不控制浏览器端的 Expires 或 Max-Age 属性——那是由 SlidingExpiration 和实际认证流程共同决定的。

常见误用是以为设了 ExpireTimeSpan = TimeSpan.FromHours(2) 就能让浏览器 2 小时后自动删 Cookie;实际上,若 SlidingExpiration = true(默认),只要用户在过期前有任意一次请求,服务端就会刷新 Cookie 并重置过期计时,浏览器收到新响应后才会更新 Set-Cookie 头里的 Max-Age。

  • 若需强制“固定有效期”(不滑动),必须显式设置 SlidingExpiration = false
  • 若 SlidingExpiration = true,ExpireTimeSpan 是滑动窗口的上限,不是每次签发的保底时长
  • 浏览器是否删除 Cookie 还取决于是否设置了 IsEssential = true 和用户的隐私设置(如 Chrome 的“第三方 Cookie 阻止”)

SecurePolicy 和 HttpOnly 必须手动开启才能生效

.NET 默认不会自动启用 Secure 或 HttpOnly 标志,哪怕你在生产环境跑 HTTPS。这两个选项必须在 CookieAuthenticationOptions 中明确配置,否则生成的 Cookie 会缺少对应属性,存在中间人窃取或 XSS 注入风险。

典型配置如下:

new CookieAuthenticationOptions
{
    CookieName = "MyApp.Auth",
    CookiePath = "/",
    CookieHttpOnly = true,
    CookieSecurePolicy = CookieSecurePolicy.Always,
    ExpireTimeSpan = TimeSpan.FromHours(8),
    SlidingExpiration = false
}
  • CookieSecurePolicy = CookieSecurePolicy.Always:强制只通过 HTTPS 发送 Cookie(开发时若用 HTTP,需改用 CookieSecurePolicy.SameAsRequest,但上线前务必切回 Always)
  • CookieHttpOnly = true:阻止 JavaScript 访问 document.cookie,防 XSS 窃取
  • CookieSameSite = SameSiteMode.Strict 或 Lax:建议显式设置,避免 CSRF(.NET 6+ 默认为 Lax,但旧版本需手动配)

UseCookiePolicy 会影响所有 Cookie,不只是认证 Cookie

如果你调用了 app.UseCookiePolicy()(常见于 .NET Core 2.x–3.1 模板),它会统一拦截并修改所有出站 Cookie,包括 Identity.Application 这类认证 Cookie。它的行为优先级高于 CookieAuthenticationOptions 中的部分设置。

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » C# Cookie认证选项配置方法 C#如何配置Cookie的过期和安全策略-C#.Net教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4003619+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4003619+
  • 本周更新: 0+
  • 最后更新: 2026-03-16