我有带有不同第三方身份验证提供程序的ASP.NET MVC 5 Web应用程序(Facebook,Vkontakte aka VK,Odnoklassniki aka OK)。我将Microsoft.Owin.Security.Facebook
用于Facebook身份验证,并将KatanaContrib.Security.VK
和KatanaContrib.Security.Odnoklassniki
用于其他人(我有一些自定义的VK,可以满足我的目的)
3天前,一切都很好,但是由于我的一些客户抱怨他们无法使用第三方提供商登录。我还可以通过一些有趣的观点来复制问题
我已在身份验证工作流程中添加了更多日志,并发现了
AuthenticationManager.GetExternalLoginInfoAsync()
始终返回
在Opera中为空.AspNet.Correlation.*
cookie在Chrome的登录过程结束时被删除,但在Opera中未删除我拥有所有Microsoft.Owin
和Microsoft.Owin.Security.*
版本4.0.0。我还将提供商使用的API升级到最新版本。但这对我没有帮助。我还将日志添加到VK身份处理程序中,发现AuthenticationTicket不为null,并且在Identity中包含相关信息
任何想法可能有什么问题?也许您可以给我一些进一步调查的指导?
答案 0 :(得分:0)
在更新所有Microsoft.Owin.Security.*
之后,我发现如果ASP.Net_SessionId cookie尚未创建,则登录失败(GetExternalLoginInfoAsync
返回null),但可以登录(如果存在)。因此,将代码Session["logging"]=true
放入登录页面即可解决该问题。
还提到了as shown here