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

脚本调试与Azure Entra ID (B2C)共存时如何保留登录凭据?

解决Visual Studio脚本调试时Azure Entra ID登录状态不持久的问题

问题根源

Visual Studio启用脚本调试时,默认会以临时用户配置文件(或隐身模式)启动Chrome,这种模式下浏览器不会保留Cookie和会话数据,导致每次调试都需要重新登录Azure Entra ID。

解决方法

方法一:修改Visual Studio的Chrome启动参数

  • 右键项目 → 属性 → 切换到调试选项卡
  • 在“浏览器”下拉框选择「Google Chrome」,点击右侧下拉箭头选择「浏览方式...」
  • 在弹出窗口中选中Google Chrome,点击「设置」按钮
  • 删除命令行参数中所有与隐身/临时配置相关的内容(比如--incognito或指向临时目录的--user-data-dir参数)
  • 保存设置后重启调试,Chrome会使用你的常规用户配置文件启动,登录状态将持久化

方法二:手动启动浏览器并附加调试器

  • 打开项目属性 → 调试 → 取消勾选「启动浏览器」,仅保留「启动项目」选项
  • 手动打开Chrome,访问localhost站点并完成Azure Entra ID登录,确保登录状态已保存
  • 在Visual Studio中按F5启动调试,待应用启动后,点击调试工具栏的「附加到进程」(或按Ctrl+Alt+P)
  • 在进程列表中找到chrome.exe(若有多个进程,选择对应你打开的站点的进程),点击「附加」,调试类型选择「JavaScript/TypeScript」,确认后即可正常调试,同时保留登录状态

方法三:配置Cookie持久化(补充优化)

在项目的Program.cs中调整认证和Cookie配置,确保会话Cookie持久化:

// 配置Azure Entra ID认证
builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
    .AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAdB2C"))
    .EnableTokenAcquisitionToCallDownstreamApi()
    .AddInMemoryTokenCaches();

// 配置应用Cookie的持久化选项
builder.Services.ConfigureApplicationCookie(options =>
{
    options.ExpireTimeSpan = TimeSpan.FromDays(7); // 设置Cookie有效期
    options.SlidingExpiration = true; // 每次用户活动时刷新Cookie有效期
    options.Cookie.IsEssential = true;
});

同时在Azure Entra ID(B2C)租户的会话设置中,将「会话生存期」调整为合适时长(比如7天),进一步保障登录状态的持久化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 10:25:00