2010-12-06 91 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

相關問題