我正在尝试使用 OpenIdAjaxTextBox 设置 DotNetOpenAuth 但我有两个问题
我希望能够获取用户的电子邮件地址,我认为这是在登录事件中完成的(对吗?),但该事件从未被调用,我试图在那里设置一个断点,但我从来没有得到它。
当我在 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