代码之家  ›  专栏  ›  技术社区  ›  John Leidegren

OpenID和Google托管域

  •  1
  • John Leidegren  · 技术社区  · 14 年前

    我得到一个“远程名称无法解析:‘mine.com’”

    使用此打开的ID标识符时: https://www.google.com/accounts/o8/site-xrds?hd=mine.com

    确实,mine.com的dns记录不存在。但我想知道为什么它会首先出现在那里。我要做的就是检查用户是否可以登录到我们的托管域。这真的很难吗?

    1 回复  |  直到 14 年前
        1
  •  2
  •   John Leidegren    14 年前

    我正在使用dotneopenauth,这是我所缺少的…

    relyingParty.DiscoveryServices.Insert(0, new DotNetOpenAuth.OpenId.HostMetaDiscoveryService { UseGoogleHostedHostMeta = true, });

    通过将hostmetadiscoveryservice放在第一位并允许usegooglehostedhostmeta,请求将按预期工作。

    结果是这样的:

    var relyingParty = new OpenIdRelyingParty();
    relyingParty.DiscoveryServices.Insert(0, new DotNetOpenAuth.OpenId.HostMetaDiscoveryService { UseGoogleHostedHostMeta = true, });
    var response = relyingParty.GetResponse();
    if (response == null)
    {
        var googleID = "https://www.google.com/accounts/o8/site-xrds?hd=my.domain";
        var request = relyingParty.CreateRequest(googleID);
        request.RedirectToProvider();
    }
    else
    {
        switch (response.Status)
        {
            case AuthenticationStatus.Authenticated:
                break;
    
            default:
                break;
        }
    }