当前位置:  开发笔记 > 编程语言 > 正文

从OpenID提供商处请求电子邮件地址

如何解决《从OpenID提供商处请求电子邮件地址》经验,为你挑选了1个好方法。

我正在实现OpenID,我想检索用户的电子邮件地址和有关用户的其他信息,我这样做:

var fetch = new FetchRequest();
fetch.AddAttribute(new AttributeRequest(WellKnownAttributes.Contact.Email));
request.AddExtension(fetch);

但提供者不会返回任何内容.我正在使用DotNetOpenID

我究竟做错了什么?

谢谢!

编辑:

当我尝试使用MyOpenID或Google 在http://www.plaxo.com/注册时,他们都说plaxo正在请求其他信息,但是当我测试我的网站时他们没有说什么......



1> Andrew Arnot..:

正如马丁所说,这取决于提供商.

我认为,MyOpenID不会执行AttributeExchange.他们做了sreg(简单注册),所以ClaimsRequest为你的请求添加一个扩展,你会ClaimsResponse从一些提供商那里得到回复.

Google只会执行AttributeExchange,并且只提供电子邮件地址.您在代码中唯一遗漏的是,除非您在请求中将其标记为"必填",否则Google甚至不会自愿提供电子邮件地址.在AttributeRequest构造函数中添加",true"第二个参数,然后Google应该点亮并为您提供用户的电子邮件地址.

以下是一些获取属性的文档和示例.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有