3

我創建了一個標準樣板ASP.NET MVC 4 Internet項目。當使用OAuthWebSecurity,使我的網站做與Facebook的社交登錄,我怎麼看,我可以在ExternalLoginCallback()動作中的AccountController通過訪問AuthenticationResult的而額外訪問Facebook的用戶名:在ASP.NET MVC 4中使用OAuthWebSecurity時獲取Google用戶名?

AuthenticationResult result = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl })); 

    var facebookName = result.ExtraData["name"]; 

當登錄與谷歌,但是,ExtraData只包含「電子郵件」。可以獲取Google用戶名嗎?我錯過配置調整的地方?

回答

2

在這裏找到我的答案:Plugging custom OAuth/OpenID providers。這是自2012年8月以來的一個已知問題,至今(DotNetOpenAuth.AspNet 4.2.2.13055,2013年4月)尚未修復。

的解決辦法是寫自己的谷歌提供商,以及上面的博客文章包含了完整的工作示例。它是那麼簡單的事情,以獲得谷歌的用戶名:

var googleName = result.ExtraData["firstName"] + " " + result.ExtraData["lastName"];