2009-10-21 139 views
4

我正在dotnetopenauth 3.3.0.9283(每日構建),它的偉大工程,它所以現在解決了我的前面的問題(DotNetOpenAuth get email and redirect problemDotNetOpenAuth收到電子郵件

我能夠從僅限Gmail獲得用戶的電子郵件!我已經嘗試了雅虎和MySpace,但我總是得到「對象引用未設置爲對象的實例。」我運行了構建版本的示例,ajaxlogin.aspx和loginProgrammatic.aspx,它們都給我提供了相同的錯誤消息。

這是我加入到樣品中(並且還設置電子郵件所需的)唯一的線

var email = OpenIdAjaxTextBox1.AuthenticationResponse.GetExtension<ClaimsResponse>().Email; 

回答

7

你有太多的代碼在一行。

GetExtension<T>()如果提供者實際上並未在響應中包含該擴展名,它將返回null。因此,您必須始終檢查它是否在解除引用前返回非空值。

由於不支持放棄其用戶的額外信息(除了小型白名單的RP),您將從雅虎收回空白。

我不知道MySpace,但我懷疑他們只是不支持它。

+0

再次感謝安德魯,我嘗試了一些更多的提供者,我設法從其中一些獲得電子郵件。而且我還要求雅虎將我放在白名單上。 再次感謝:) – Murre 2009-10-22 18:29:47

+0

我如何知道某個提供商不提供某些信息? – LuRsT 2010-03-02 15:03:54

+1

LuRsT,事先不可能知道。但是如果你要求這些信息,你只需在回覆中查看它,正如我在回答中所述。 – 2010-03-02 16:37:37