4

我正在运行 dotnetopenauth 3.3.0.9283(每晚构建),它运行良好并且解决了我之前的问题(DotNetOpenAuth 获取电子邮件和重定向问题

所以现在我只能从 gmail 获取用户的电子邮件!我已经尝试过 yahoo 和 myspace,但我总是得到“对象引用未设置为对象的实例”。我运行了构建附带的示例,ajaxlogin.aspx 和 loginProgrammatic.aspx 它们都给了我相同的错误消息。

这是我添加到示例中的唯一行(并将电子邮件设置为必需)

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

1 回答 1

7

一行代码太多。

GetExtension<T>()如果 Provider 实际上没有在响应中包含该扩展,则将返回 null。因此,在取消引用之前,您必须始终检查它是否返回非空值。

你从雅虎那里得到了无效的回报,因为他们不支持泄露用户的额外信息(目前),除了一小部分 RP 的白名单。

我不知道 MySpace,但我怀疑他们也不支持它。

于 2009-10-22T14:32:55.317 回答