2010-12-06 56 views
2

我想为我的应用程序使用DNOA for OpenId支持,以便离开迄今为止我一直使用的Janrain解决方案。问题是我目前使用的用户有基于配置文件的标识符(https://www.google.com/profiles/11223344556677 ...),而DNOA检索的标识符的格式为https://www.google.com/accounts/o8/id?id=xxxxxyyyyyafgsdgfsdhg如何使用DotNetOpenAuth检索Google个人资料?

如何检索配置文件信息?通过属性交换?和哪个属性?还是有其他一些API?我看到登录页面有一个谷歌提供商和谷歌配置文件的不同,所以有人在这里有一个答案... :)

更新:谷歌配置文件的端点是(https:// www.google.com/profiles/)

所以......现在的问题是在于如何让谷歌个人资料的ID号

回答

3

的谷歌个人资料ID号是通过“HTTP检索://模式。 openid.net/ax/api/user_id“属性。将其设置为需要

在DNOA,

var fetch = new FetchRequest(); 

fetch.Attributes.AddRequired("http://axschema.org/contact/country/home"); 
fetch.Attributes.AddRequired("http://axschema.org/contact/email"); 
fetch.Attributes.AddRequired("http://axschema.org/namePerson/first"); 
fetch.Attributes.AddRequired("http://axschema.org/namePerson/last"); 
fetch.Attributes.AddRequired("http://axschema.org/pref/language"); 
fetch.Attributes.AddRequired("http://schemas.openid.net/ax/api/user_id"); 

有趣的是,如果我省略一些属性,我没有得到API/USER_ID回来。 不能指出这一部分,但我并不在乎这一点。

0

谷歌实际上有2(也许更多)openid提供商 - 帐户和配置文件。我不知道为什么有2个,但所有Google帐户所有者都没有Google个人资料。

这两者之间也有很大的区别。 Google个人资料openid标识符在您使用它的任何地方都是一样的。 Google帐户ID不是!使用Google帐户作为OpenID提供商登录时,您会为每个域获得不同的ID。这是OpenID的新功能(我认为是可选的),但我现在不记得它的名字了。

说了这么多,我不认为Google会给你任何Google帐户标识符与哪个Google个人档案标识符相关的数据。

希望这有助于任何方式。

+0

好处在帐户ID的非唯一性。除此之外,正如我上面所说的,配置文件标识符是通过“http://schemas.openid.net/ax/api/user_id”属性检索的。 – ghallas 2010-12-08 07:08:01

相关问题