我正在建立一个网站,组织中的人员可以使用其组织提供的Google Apps帐户登录。该网站使用DotNetOpenAuth的标准OpenID示例代码对Google OpenID提供商进行身份验证。
此Google Apps域上启用了OpenID,但当我尝试通过https://google.com/accounts/o8/site-xrds?hd=domain.com
端点对用户进行身份验证时,出现以下错误:
发送直接消息或收到回复时出错。
但是,如果我使用标准https://www.google.com/accounts/o8/id
端点并使用我的Google Apps帐户登录,则可以正常使用!
为什么相同的Google Apps帐户会产生两种不同的结果:一个端点有效,另一个端点无法正常验证?
答案 0 :(得分:1)
Google Apps完全不遵循OpenID 2.0协议。它有一个专有的发现机制,DotNetOpenAuth默认情况下没有打开。
在OpenIdRelyingPartyWebForms项目的loginGoogleApps.aspx文件中查看the sample from SourceForge。您会看到其代码隐藏将Google Apps发现添加到OpenIdRelyingParty类。如果你这样做,我认为它也适合你。