我已经实现了一个使用 Azure B2C 进行身份验证和授权的 Blazor 服务器应用程序项目。
问题是,当我从 Google Chrome 导航到应用程序,然后导航到浏览器的上一页时,Google Chrome 的行为与 Firefox 不同。 Firefox 导航回来没有错误,但 Google Chrome 重定向了我 到此页面
我还检查了我的应用程序日志,发现了以下未处理的异常
警告:Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler[15] 找不到“.AspNetCore.Correlation.k3N-jORFKYdELX1dInIv2C_hsBx7-R0tox2Ctj9zUtc”cookie。
我在 Program.cs 上的 Azure B2C 配置是
builder.Services.AddMicrosoftIdentityWebAppAuthentication(builder.Configuration, "AzureAdB2C")
.EnableTokenAcquisitionToCallDownstreamApi(new string[] { builder.Configuration["TodoList:TodoListScope"] })
.AddDistributedTokenCaches();
我该如何处理这个错误?
提前致谢。
最佳答案
Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler[15] '.AspNetCore.Correlation.k3N-"<------->' cookie not found.
在针对本地主机使用 Chrome 时,Chrome 的 cookie 处理行为会发生变化,从而发生此错误。
在 Chrome 开发者工具中,Cookie 的 SameSite 值可能会设置为“无”,但它不安全> 这可能会导致相关 cookie 被浏览器删除
在Startup.cs>ConfigureServices方法中:您需要添加
app.UseCookiePolicy(new CookiePolicyOptions
{
Secure = CookieSecurePolicy.Always
});
对于同站点进程还有另一个选项,您需要使用SameSiteMode.Lax
app.UseCookiePolicy(new CookiePolicyOptions()
{
MinimumSameSitePolicy = SameSiteMode.Lax
});
引用: c# - Correlation failed in net.core / asp.net identity / openid connect - Stack Overflow
关于azure - 具有 Azure B2C 身份验证的 Blazor 服务器应用程序在返回导航时引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73471575/