使用Facebook或Google登录时,无论何时调用GetExternalLoginInfoAsync方法都会返回null。

5 浏览
0 Comments

使用Facebook或Google登录时,无论何时调用GetExternalLoginInfoAsync方法都会返回null。

我在使用OWIN身份验证时遇到了问题。无论我使用Facebook还是Google登录,我都会收到从GetExternalLoginInfoAsync()返回的null值。

但是有一个神秘的情况...当我打开Fiddler时,我可以使用这种方法获取到正确的数据。

我无法找到原因。

谢谢!

0
0 Comments

当我尝试使用Facebook或Google登录时,GetExternalLoginInfoAsync始终返回null的问题出现的原因是没有正确设置HttpResponse的SuppressFormsAuthenticationRedirect属性。解决方法是在ChallengeResult类的ExecuteResult方法中添加以下代码:

context.RequestContext.HttpContext.Response.SuppressFormsAuthenticationRedirect = true;

这行代码修复了返回null的问题。需要注意的是,在使用Twitter授权登录时不要使用Fiddler,否则会收到错误信息。可以参考这个链接获取更多信息:[stackoverflow.com/questions/20180562/…](http://stackoverflow.com/questions/20180562/20948631#20948631)

0