为什么我的ClaimsRequest返回null?

时间:2009-09-27 03:10:44

标签: asp.net-mvc dotnetopenauth

我刚刚开始尝试DotNetOpenAuth项目。修改示例 OpenIdRelyingPartyMvc 项目,我能够获得{{1>} 电子邮件与Google合作。

但是,当我尝试将OpenID添加到我自己的项目时,ClaimResponse总是返回null。我想知道是否存在我缺少的项目或环境设置?

这是我的ClaimRequest方法:

Authenticate

}

1 个答案:

答案 0 :(得分:11)

<configuration>
       <configSections>
          <section name="dotNetOpenAuth" type="DotNetOpenAuth.Configuration.DotNetOpenAuthSection" requirePermission="false" allowLocation="true"/>
       </configSections>
       <dotNetOpenAuth>
          <openid>
             <relyingParty>
                <behaviors>
                   <!-- The following OPTIONAL behavior allows RPs to use SREG only, but be compatible
                        with OPs that use Attribute Exchange (in various formats). -->
                   <add type="DotNetOpenAuth.OpenId.Behaviors.AXFetchAsSregTransform, DotNetOpenAuth" />
                </behaviors>
             </relyingParty>
          </openid>
       </dotNetOpenAuth>
    </configuration>

http://dotnetopenauth.net:8000/wiki/CodeSnippets/OpenIDRP/AXFetchAsSregTransform

将配置信息添加到您的web.config。

  

Google有一个独特的特性,因为它忽略了标记为“可选”的所有属性请求。您必须将用户的电子邮件地址请求为“必填”才能从Google获取电子邮件地址。但要小心,通过根据需要标记属性,Google将拒绝对用户进行身份验证,除非用户愿意放弃他们的电子邮件地址。因此,如果您实际上并不需要电子邮件地址,最好将其标记为可选,并且只是放弃从Google用户那里获取,以避免强迫用户放弃他们的电子邮件地址来追捕他们不想。