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

如何配置ASP.NET Core Blazor实现跨子域共享Identity Cookie?

配置ASP.NET Core Identity Cookie支持跨子域登录

默认情况下,Identity生成的Cookie会绑定到当前请求的精确域名(比如myappdomain.com),导致子域sub.myappdomain.com无法共享登录状态。要实现跨子域免重复登录,需要显式配置Cookie的域名为主域(带前缀点的.myappdomain.com),让所有子域都能识别该Cookie。

修改你的认证配置代码,通过AddIdentityCookies的配置委托分别设置应用Cookie和外部登录Cookie的域名:

builder.Services.AddAuthentication(options =>
{
    options.DefaultScheme = IdentityConstants.ApplicationScheme;
    options.DefaultSignInScheme = IdentityConstants.ExternalScheme;
})
.AddIdentityCookies(cookies =>
{
    // 配置主应用登录Cookie的域名
    cookies.ApplicationCookie.Configure(options =>
    {
        options.Cookie.Domain = ".myappdomain.com";
    });

    // 配置外部登录(如第三方OAuth)Cookie的域名
    cookies.ExternalCookie.Configure(options =>
    {
        options.Cookie.Domain = ".myappdomain.com";
    });
});

关键说明

  • 域名前缀的点:.myappdomain.com格式会让Cookie作用于主域及所有子域;省略点的话,部分浏览器仅会将Cookie限制在当前精确域名下。
  • 环境适配:建议通过配置文件或环境变量动态设置域名,比如读取builder.Configuration["Auth:CookieDomain"],避免开发环境硬编码主域名。
  • 安全注意:生产环境务必使用HTTPS,此时Cookie的Secure属性会默认启用,保证Cookie仅通过加密连接传输。
  • 验证配置:登录后可在浏览器开发者工具的「Application」→「Cookies」面板中,查看Cookie的Domain属性是否为.myappdomain.com,确认配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 08:54:52