DotNetOpenAuth我需要一些帮助

时间:2011-01-11 02:48:48

标签: c# asp.net openid dotnetopenauth

我知道之前已发布过,但从未真正回答过,我正在使用DotNetOpenAuth尝试登录GoogleID,每次我{I} {I}总是这样,我总是会回来null如果我无法获取任何信息,请不要了解GoogleID的重点,我想至少我会得到一个电子邮件地址,所以我可以将其他登录信息关联到我的数据库中。我只是不明白可以真正使用一些帮助,我可能只是以错误的方式看待openID。

我正在使用ASP.NET并希望使用openID / Facebook作为登录用户的唯一方法,我真的不想搞乱会员角色,或者ASP.NET喜欢添加的额外垃圾。< / p>

2 个答案:

答案 0 :(得分:0)

Google的OpenID服务器似乎不支持AX或sreg。

答案 1 :(得分:0)

是的,这已被多次询问和回答。 Google 支持AX。但它忽略了标记为“可选”的任何属性。因此,如果您想要电子邮件地址,则必须说电子邮件地址是必需属性。

您要检查的ClaimsResponse扩展程序不是AX - 它是简单注册。但是如果你开启了AXFetchAsSregTransform行为(强烈推荐),那么它允许你只使用ClaimsRequestClaimsResponse,并且DotNetOpenAuth将自动转换为AX幕后的幕后行为为了你。

或者,您可以使用FetchReqestFetchResponse直接向Google发声。

但是(我不能用力锤击这个),不要使用电子邮件地址作为用户的唯一标识符!!! 而是使用{{ 1}} string作为唯一标识符。电子邮件地址通常应被视为可用于预填填注册表的有用提示。您甚至不应该相信您获得的电子邮件地址实际上是由用户控制的(这是为什么它不应被视为其唯一ID的一个原因),因为提供商可能会欺骗您。 Google和Yahoo是两家承诺(如果您选择信任它们)的电子邮件地址已经过验证的提供商,因此如果您愿意,可以跳过用户的电子邮件验证步骤。