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

ASP.NET Core 8.0 Razor Pages PWA主屏幕身份验证及防伪令牌异常

ASP.NET Core Razor Pages PWA 主屏幕访问的Identity会话与防伪令牌问题解决方案

一、PWA重启后Identity Cookie丢失的处理

PWA主屏幕模式下浏览器会启用更严格的存储隔离策略,要让Identity Cookie持久化,需调整Cookie配置和PWA manifest设置:

  • 配置Identity Cookie的持久化属性:在Program.cs里明确指定Cookie的SameSite、Secure策略及过期时间,确保跨场景可共享且持久:
    builder.Services.ConfigureApplicationCookie(options =>
    {
        options.Cookie.SameSite = SameSiteMode.None;
        options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
        options.Cookie.Expiration = TimeSpan.FromDays(7);
        options.SlidingExpiration = true;
        // Safari 15.4+ 需要Partitioned属性支持跨存储分区
        options.Cookie.IsPartitioned = true;
    });
    
  • 校准manifest.json的范围配置:确保scope和start_url指向站点根路径,避免PWA运行在独立上下文导致Cookie无法读取:
    {
      "scope": "/",
      "start_url": "/",
      "display": "standalone"
    }
    
  • 检查Service Worker缓存规则:如果Service Worker拦截了请求,确保Identity相关的接口(如/Account/Login、/Identity/*)绕过缓存,直接走网络请求,避免旧会话数据被缓存。

二、登录请求防伪令牌400错误的修复

防伪令牌验证失败是因为PWA场景下令牌Cookie未正确传递或匹配,需调整防伪令牌的Cookie配置并验证请求流程:

  • 配置防伪令牌Cookie的跨场景兼容性:在Program.cs里同步调整防伪令牌的Cookie属性,和Identity Cookie保持一致:
    builder.Services.AddAntiforgery(options =>
    {
        options.Cookie.SameSite = SameSiteMode.None;
        options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
        options.Cookie.IsPartitioned = true;
    });
    
  • 确保表单令牌生成正确:在登录Razor页面中,显式声明防伪令牌(即使默认启用,显式声明可避免场景兼容问题):
    <form method="post" asp-page="/Account/Login">
        @Html.AntiForgeryToken()
        <!-- 表单内容 -->
    </form>
    
  • 排查请求头Cookie传递:在浏览器开发者工具的Network面板查看登录请求的Cookie头,确认同时包含AspNetCore.Identity.Application和__RequestVerificationToken两个Cookie值,若缺失则说明存储隔离导致Cookie未被携带。
  • 临时禁用Service Worker排查:注释掉页面中注册Service Worker的代码,重新添加PWA测试,若错误消失则说明是Service Worker的缓存策略篡改了请求令牌。

额外排查点

  • 针对苹果Safari:需确保站点已配置HTTPS且证书有效,Safari对PWA的Cookie隔离要求更严格,IsPartitioned属性必须设置。
  • 清理测试环境数据:彻底清除浏览器的站点Cookie、缓存,卸载已添加的PWA后重新安装,避免旧数据干扰测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 16:54:52