OpenIdAjaxTextBox を使用して DotNetOpenAuth をセットアップしようとしていますが、2 つの問題があります
ユーザーの電子メールアドレスを取得できるようにしたいのですが、それはログインイベントで行われると思います (右?) しかし、そのイベントは決して呼び出されません。そこにブレークポイントを設定しようとしましたが、到達しませんでした。
OpenIdAjaxTextBox (Gmail など) に openid プロバイダーを入力すると、テキスト ボックスにログイン ボタンが表示されるので、それをクリックすると、新しいウィンドウがポップアップして Gmail のログイン フォームが表示されますが、その後、ユーザー名とパスワードを入力します。ポップアップウィンドウが更新され、自分のウェブサイトがそのポップアップウィンドウにロードされるログインをクリックすると、ログイン後にポップアップウィンドウが閉じて、サイトにリダイレクトされないことが期待されます。
ここに私が使用しているコードがあります
<%@ Register Assembly="DotNetOpenAuth" Namespace="DotNetOpenAuth.OpenId.RelyingParty"
TagPrefix="openid" %>
<openid:OpenIdAjaxTextBox ID="OpenIdAjaxTextBox1" runat="server"
OnLoggingIn="openIdtxtbx_LoggingIn"
OnLoggedIn="openIdtxtbx_LoggedIn"
OnClientAssertionReceived="onauthenticated(sender)"
OnUnconfirmedPositiveAssertion="openIdtxtbx_UnconfirmedPositiveAssertion" />
Protected Sub openIdtxtbx_LoggedIn(ByVal sender As Object, ByVal e As OpenIdEventArgs)
' Do something here
Dim claimedId As String = e.Response.Status
End Sub
Protected Sub openIdtxtbx_LoggingIn(ByVal sender As Object, ByVal e As OpenIdEventArgs)
' Retrieve the email address of the user
Dim c As New ClaimsRequest
c.Email = DemandLevel.Require
e.Request.AddExtension(c)
End Sub
Protected Sub openIdtxtbx_UnconfirmedPositiveAssertion(ByVal sender As Object, ByVal e As OpenIdEventArgs)
' This is where we register extensions that we want to have available in javascript
' on the browser.
OpenIdAjaxTextBox1.RegisterClientScriptExtension(Of ClaimsResponse)("sreg")
End Sub