无法从Open Id属性获取名字,姓氏或领域ID

时间:2013-01-31 13:55:49

标签: intuit-partner-platform

根据IA的SSO documentation,这些属性应该可用(我在属性URI上猜测):

查看在open id请求的第3阶段期间传递的查询字符串,以下是存在的属性:

错误,文档中的错误或键盘后面的松动螺母?

1 个答案:

答案 0 :(得分:0)

这里有两个问题,第一个问题是我急速剪切和粘贴编码我只是要求全名和电子邮件。我修改了代码以请求名字,姓氏和领域ID。现在名字和姓氏都很好。然而,它需要花费大量时间才能找到领域问题的底部。首先,文档没有给出uri属性的明确答案;但是,我能够在这个帖子https://idnforums.intuit.com/textthread.aspx?catid=69&threadid=16954上找到一个明确的答案。保罗杰克逊清楚地知道这里发生了什么:

  1. 领域ID的属性为http://axschema.org/intuit/realmId
  2. 有时属性不会通过
  3. 我在这个帖子中根据他的建议整理了一项技巧。基本上,如果领域ID没有通过,那么我将从引用URL解析它,它在查询字符串中将它作为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"];
        }
    }
    

    我对这个解决方案毫不留情,保罗已经弄清楚了。只是发布在这里帮助任何人搜索这个问题。