私のブログ記事のいくつかのヒントHow to pretty much guarantee that you might get an email address with OpenID。要するに
、あなたはactivate the AXFetchAsSregTransform behaviorする必要があります。
<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>
そして、あなたは、ユーザーの電子メールアドレスが必要なプロバイダーを伝える必要があります。しかしOpenIdButton
に取り組んでから<Extensions>
タグを保持DotNetOpenAuthのバグが(v3.4.7がこれを修正する)がある
<rp:OpenIdButton runat="server"
Text="Log in with Google"
Identifier="https://www.google.com/accounts/o8/id">
<Extensions>
<sreg:ClaimsRequest Email="Require" />
</Extensions>
</rp:OpenIdButton>
:理想的には、これは次のように行われます。代わりに、コードビハインドで属性要求を追加する必要があります。だからあなたのタグは次のようになります。
<rp:OpenIdButton runat="server"
Text="Log in with Google"
OnLoggingIn="OpenId_LoggingIn"
Identifier="https://www.google.com/accounts/o8/id" />
そして、あなたのコードビハインドこのメソッドを持っています
protected void OpenId_LoggingIn(object sender, OpenIdEventArgs e) {
e.Request.AddExtension(new ClaimsRequest() { Email = DemandLevel.Require });
}
おかげアンドリュー・アーノット。 btwライブラリは素晴らしいです:) – Ranger
非常に有益。 – pqsk
こんにちは、 "AXFetchAsSregTransformの動作をアクティブにする:"リンクが死んでいるようです。 GitHubから404を取得する。この情報は移動されましたか?もしそうならどこ?私はもう一度それを読むのが大好きです。 –