问题描述
我有一个运行在Heroku上的ASP.Net Core 3.1应用程序,它使用Google的OAuth(AspNetCore.Authentication.Google程序包)登录用户。在Chrome 84.0上运行时,身份验证失败并且我的服务器返回
Exception: Correlation Failed.
UnkNown location
Exception: An error was encountered while handling the remote login.
Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler<TOptions>.HandleRequestAsync()
Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
在Firefox 79.0,Edge 84.0,Android Chrome 71和Android Firefox 68中进行身份验证时,工作正常,所以我的Chrome副本是否有问题?
将Chrome的“默认情况下,SameSite Cookies”设置为“已禁用”可解决此问题,但我不能指望最终用户进入实验性设置。 我尝试将cookie pollicy设置为SameSiteMode.None:
...
services.Configure<CookiePolicyOptions>(options =>
{
options.MinimumSameSitePolicy = SameSiteMode.Unspecified;
options.OnAppendCookie = cookieContext =>
cookieContext.CookieOptions.SameSite = SameSiteMode.None;
options.OnDeleteCookie = cookieContext =>
cookieContext.CookieOptions.SameSite = SameSiteMode.None;
});
...
...
app.UseCookiePolicy();
app.UseAuthentication();
...
它没有帮助。我也尝试过这篇文章的解决方案: https://www.thinktecture.com/en/identity/samesite/prepare-your-identityserver/,但也无济于事。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)