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

使用Visual Studio 2022隧道时Azure Marketplace落地页抛出异常

解决Visual Studio隧道下Azure AD登录关联失败(Correlation failed)问题

针对本地调试正常、Visual Studio隧道测试时出现AuthenticationFailureException且找不到.AspNetCore.Correlation Cookie的问题,以下是具体修复步骤:

1. 修正HTTP请求管道的中间件顺序

你的代码缺少认证中间件注册,且授权中间件顺序错误。认证必须在授权之前执行,否则无法处理登录回调的Cookie验证。修改Program.cs的管道配置:

var app = builder.Build();

// 保留原有环境判断代码...

app.UseCookiePolicy(new CookiePolicyOptions
{
    Secure = CookieSecurePolicy.Always,
    MinimumSameSitePolicy = SameSiteMode.None, // 取消注释并设置为None
    // HttpOnly = HttpOnlyPolicy.None // 按需开启,默认HttpOnly是安全的,除非有特殊需求
});

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

// 新增:添加认证中间件,必须在UseAuthorization之前
app.UseAuthentication();
app.UseAuthorization();

// 保留原有路由配置...

app.Run();

2. 调整Cookie策略的SameSite设置

跨域场景(Azure AD登录回调到Visual Studio隧道域名)下,必须将SameSite设置为None,同时保持Secure=Always(确保Cookie仅通过HTTPS传输)。这是因为Azure AD登录服务器和隧道域名属于不同域,需要允许第三方Cookie传递。

3. 更新Azure AD应用注册的重定向URI

Visual Studio隧道会生成临时公共域名(例如https://xxxx-xxxx-xxxx-xxxx.vscode.dev),需将该域名的完整回调URL添加到Azure AD应用注册的重定向URI列表中:

  • 登录Azure门户,找到目标应用注册
  • 在「身份验证」页面,添加重定向URI:https://<你的隧道域名>/signin-oidc
  • 保存更改

4. 显式配置OpenID Connect关联Cookie属性

在Startup.cs的ConfigureService方法中,显式设置关联Cookie的SameSite和Secure属性,确保适配跨域场景:

services.Configure<OpenIdConnectOptions>(OpenIdConnectDefaults.AuthenticationScheme, options =>
{
    options.Events.OnSignedOutCallbackRedirect = context =>
    {
        context.Response.Redirect("/");
        context.HandleResponse();
        return Task.CompletedTask;
    };

    // 新增:配置关联Cookie的跨域属性
    options.CorrelationCookie.SameSite = SameSiteMode.None;
    options.CorrelationCookie.SecurePolicy = CookieSecurePolicy.Always;
});

5. 清除浏览器缓存和Cookie

部分浏览器会缓存旧的Cookie策略,导致新设置不生效。清除浏览器缓存及所有Cookie后,重新测试登录流程。

问题根源分析

  • 本地调试使用localhost同源域名,Cookie的SameSite设置不影响关联性验证;
  • Visual Studio隧道使用公共域名,与Azure AD登录服务器属于跨域场景,若SameSite设置不正确,浏览器会拦截关联Cookie,导致回调时无法找到.AspNetCore.Correlation Cookie;
  • 缺少UseAuthentication()中间件,导致认证系统无法处理登录回调的Cookie验证逻辑。

内容的提问来源于stack exchange,提问作者Sergio B.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 10:57:19