我知道这是之前发布的,但从未真正回答过,我正在使用DotNetOpenAuth尝试并执行GoogleID登录,并且每次我都会这样做details = OResponse.GetExtension<ClaimsResponse>();
我总是总是返回null ,如果我无法取回任何信息,我不明白GoogleID的意义,我想至少我会得到一个电子邮件地址,所以我可以将其他登录信息与我的数据库相关联。我只是不明白可以真的使用一些帮助,我可能只是在错误的方式看待openID。我正在使用ASP.NET,并希望使用openID/Facebook作为登录用户的唯一方式,我真的不想惹恼成员角色或ASP.NET喜欢添加的额外垃圾。DotNetOpenAuth我需要一些帮助
1
A
回答
0
是的,这已被询问并回答了很多次。谷歌确实支持AX。但它会忽略标记为“可选”的任何属性。所以如果你想要电子邮件地址,你必须说这个电子邮件地址是一个必需的属性。
您正在检查的ClaimsResponse
扩展名不是AX--它是简单注册。但是,如果您打开了AXFetchAsSregTransform行为(强烈推荐),那么它只允许您仅使用ClaimsRequest
和ClaimsResponse
,DotNetOpenAuth将自动为您在AX幕后翻译。
或者,您可以使用FetchReqest
和FetchResponse
直接向Google讲AX。
但是(我不能锤得这个够硬),不要使用电子邮件地址作为用户的唯一标识符!而是使用IAuthenticationResponse.ClaimedIdentifier
字符串作为唯一标识符。通常应将电子邮件地址视为可用于预填注册表单的有用提示。你甚至不应该相信你得到的电子邮件地址实际上是在用户的控制之下(这就是为什么它不应该被认为是他们唯一的ID),因为提供者可以骗你。谷歌和雅虎是两家承诺(如果您选择信任他们)的电子邮件地址已经过验证的供应商,所以如果您愿意,您可以跳过用户的电子邮件验证步骤。
0
似乎Google的OpenID服务器不支持AX或sreg。
相关问题
- 1. preg_match_all - 需要一些帮助
- 2. 需要一些帮助SC.SelectView
- 3. 需要一些帮助PVOID
- 4. RegQueryValueEx,需要一些帮助
- 5. 需要一些帮助CasperJS
- 6. 需要一些帮助!
- 7. 需要一些PHP帮助
- 8. Django需要一些帮助
- 9. 需要一些帮助#define
- 10. 我需要一些帮助,在MySQL
- 11. 我需要一些多项式帮助
- 12. 我需要帮助简化一些JavaScript
- 13. 我需要一些帮助理解OOP
- 14. 贝宝帮手需要一些帮助
- 15. 需要域模型的一些帮助
- 16. 需要一些帮助,使互动Jtable
- 17. 需要帮助转动一些数据
- 18. 需要一些贝宝帮助
- 19. MySQL错误需要一些帮助
- 20. 需要一些序列化的帮助
- 21. 需要一些帮助与测试
- 22. 在CakePHP中需要一些帮助!
- 23. 需要一些帮助PyQt和QGridLayout
- 24. 使用Twitter OAuth ...需要一些帮助
- 25. 在指针中需要一些帮助
- 26. 需要一些帮助,在MySQL
- 27. 需要一些PUB/SUB Jedis帮助Bukkit
- 28. 真的需要WebView的一些帮助
- 29. 需要一些基本的github帮助
- 30. 新手需要一些线程帮助
我试过用openautho DLL包含简单的控制,我试过这个http://www.midnightprogrammer.net/post/Extending-OpenID-Implementation-With-ASPNET-User-Information-Roles-and -Membership.aspx,甚至该项目将返回null,你是否应该使用响应返回的URL,这将是你的唯一标识符。 – nagates 2011-01-11 03:07:26
现在没有时间去帮忙,但是请查看http://test-id.org/ - 你可以从那里发出请求,看看它是否真的是谷歌或者它是你的事情 – Cameron 2011-01-11 07:25:24
是的,你应该*总是*使用`IAuthenticationResponse.ClaimedIdentifier`作为唯一标识符。 – 2011-01-11 21:22:20