使用 Microsoft.Identity.Web 时如何修复“关联失败”异常?

问题描述 投票:0回答:1

尝试使用 Microsoft.Identity.Web 解决方案在 Asp.net Core 应用程序中建立外部提供商连接。

我已使用下一个 C# 代码连接它:

services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme).AddMicrosoftIdentityWebApp(Configuration.GetSection("AzureAd"));

作为外部提供商,它集成良好。

但是,当我使用当前提供商登录时,出现异常

System.Exception:“处理远程登录时遇到错误。” 内部异常。 异常:关联失败。

当我研究时,我发现这是“关联cookie”问题(意味着提供商不会找到与“关联”的cookie)。据我检查,

Request.Cookie.Count == 0

但是浏览器发送 .AspNetCore.Correlation 和 .AspNetCore.OpenIdConnect.Nonce cookie,其值为“N”。

应用程序的cookie配置设置是:

        services.ConfigureApplicationCookie(config =>
        {
            config.Cookie.SameSite = SameSiteMode.Strict;

           
        });
        services.ConfigureExternalCookie(options =>
        {
            options.Cookie.Name = "Identity.Application";
            options.Cookie.SameSite = SameSiteMode.Strict;
        });

...

        app.UseCookiePolicy(new CookiePolicyOptions()
        {
            MinimumSameSitePolicy = Microsoft.AspNetCore.Http.SameSiteMode.Lax,
            HttpOnly = HttpOnlyPolicy.None
        });

设置有什么问题?可能有什么问题,或者缺席?

c# asp.net-core openid microsoft.identity.web
1个回答
0
投票

我可以重现您的问题。

enter image description here

只要评论这一行

MinimumSameSitePolicy = Microsoft.AspNetCore.Http.SameSiteMode.Lax,
,那么这个问题就会消失。

© www.soinside.com 2019 - 2024. All rights reserved.