2013-01-31 17 views
0

按照SSO documentation爲IA這些屬性應該是可用的(我猜了一下,在屬性URI):無法從公開識別獲得頭名,姓,或領域ID屬性

回顧開放ID請求的階段3期間傳遞的查詢字符串,這裏有屬性存在:

錯誤,文檔中的錯誤,或後面噸鬆螺母他鍵盤?

+0

嗨@Michael你能得到姓和名? –

回答

0

這裏有兩個問題,第一個問題是我急於剪切和粘貼編碼,我只是要求全名和電子郵件。我修改了代碼以請求名字,姓氏和領域ID。現在名字和姓氏通過罰款。然而,它花了大量的時間去了解領域ID問題的底部。首先,文檔沒有給出uri屬性的明確答案;但是,我能夠在此線程上找到明確的答案https://idnforums.intuit.com/textthread.aspx?catid=69&threadid=16954。保羅·傑克遜給出了明確的知道什麼是怎麼回事:

  1. 的境界ID屬性是http://axschema.org/intuit/realmId
  2. 有時屬性不來通過

我放在一起的技術,根據他的建議在這個線程中。基本上,如果領域id沒有通過,那麼我會從查詢字符串中將它引用爲realmId來解析它。顯然,這是脆弱的,但現在提供了一個「工作」解決方案。

這是您可以在握手階段3中使用的代碼片段。

_realmId = fetch.GetAttributeValue(OpenId.IntuitWellKnownRealmId); 

if (_realmId == null && httpRequest.UrlReferrer != null) 
{ 
    var url = httpRequest.UrlReferrer.ToString(); 
    var i = url.IndexOf('?'); 
    if (i != -1) 
    { 
     var querystring = url.Substring(i); 
     _realmId = System.Web.HttpUtility.ParseQueryString(querystring)["realmId"]; 
    } 
} 

我拿零分此解決方案,保羅已經有它想通了。只是在這裏發佈,以幫助任何人搜索這個問題。

+0

你可以發佈你的代碼嗎?該鏈接不再有效,我遇到了同樣的問題,謝謝! – Shaun

+0

添加了代碼片段。希望有所幫助。 – Michael