ExternalLoginInfo loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
为什么这行代码总是返回 null?无论用户使用哪个提供程序进行登录都会出现此问题。我知道流程是正确的,因为在本地可以正常工作,但是当我部署网站时它总是返回 null。
据我所了解,它使用外部 cookie 跟踪此问题,我可以确定不是浏览器的问题,因为在同一浏览器上本地可以正常工作。
即使我已经仔细检查了所有提供程序的控制面板中的域名是否“允许”,但这种情况仍会发生。就像我说的,一切在本地都能正常工作。
我尝试过重新启动 IIS,正如一些答案建议的那样。
还有这些行在 Startup.Auth.cs 中,cookie 域名设置正确。
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
CookieDomain = ".example.com",
...
});
//use a cookie to temporarily store information about a user logging in with a third party login provider
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
http://example.com/auth-complete.html
添加为重定向URI,但没有解决问题。我也不确定您所说的覆盖提供程序设置是什么意思?它可能在哪里被覆盖。 - parliament