尝试使用 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
});
设置有什么问题?可能有什么问题,或者缺席?