簡體   English   中英

AuthenticationManager.GetExternalLoginInfoAsync始終為null

[英]AuthenticationManager.GetExternalLoginInfoAsync always null

我的ASP.NET MVC 5 Web應用程序具有不同的第三方身份驗證提供程序(Facebook,Vkontakte又名VK,Odnoklassniki又名OK)。 我將Microsoft.Owin.Security.Facebook用於Facebook身份驗證,並將KatanaContrib.Security.VKKatanaContrib.Security.Odnoklassniki用於其他人(我已經對VK進行了一些定制,可以滿足我的目的)

3天前一切都很好,但是自那以后,我的一些客戶抱怨他們無法使用第三方提供商登錄。 我還可以通過一些有趣的觀點來復制問題

  • 對我來說,它不是永久存在於Google Chrome瀏覽器(版本71.0.3578.80)中
  • 它在Opera中是持久的(版本:57.0.3098.91)
  • 當我的Web應用在本地或dev.site.ru(Chrome和Opera)上運行時,我可以登錄

我在身份驗證工作流程中添加了更多日志,並發現

  • AuthenticationManager.GetExternalLoginInfoAsync()在Opera中始終返回null
  • .AspNet.Correlation.* Cookie在Chrome的登錄過程結束時刪除,但在Opera中未刪除

我擁有所有Microsoft.OwinMicrosoft.Owin.Security.*版本4.0.0。 我還將提供商使用的API升級到最新版本。 但這對我沒有幫助。 我還將日志添加到VK身份處理程序中,發現AuthenticationTicket不為null,並且在Identity中包含相關信息

有什么想法可能是錯誤的嗎? 也許您可以給我一些進一步調查的指導?

更新所有Microsoft.Owin.Security.*我發現如果ASP.Net_SessionId cookie尚未創建,則登錄失敗( GetExternalLoginInfoAsync返回null),但可以登錄(如果存在)。 因此,將代碼Session["logging"]=true放在登錄頁面加載中即可解決此問題。

這里也提到

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM