DotNetOpenAuth收到电子邮件和重定向问题

时间:2009-10-08 18:36:14

标签: openid dotnetopenauth

我正在尝试使用OpenIdAjaxTextBox设置DotNetOpenAuth,但我有两个问题

  1. 我希望能够获得用户的电子邮件地址,我认为这是在登录事件中完成的(对吗?)但是该事件从未被调用过,我试图在那里设置断点,但我从来没有得到过它。

  2. 当我输入OpenIdAjaxTextBox中的openid提供程序(比如说Gmail)时,我在文本框中输入了登录按钮,所以我点击它会弹出一个新窗口并显示Gmail登录表单但之后我输入我的用户名和密码,点击登录弹出窗口刷新,我自己的网站在弹出窗口中加载,我希望登录后不会将我的网站重定向到我的网站,关闭弹出窗口。

  3. 这是我使用的代码

    <%@ 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
    

1 个答案:

答案 0 :(得分:0)

在从网页回发之前不会触发OpenIdAjaxTextBox.LoggedIn事件 - 某种提交按钮。文本框上的“登录”按钮本身不是回发,因此您需要向页面添加一些其他提交按钮。

e.Response.Status 不是声明的标识符。您应该将LoggedIn事件处理程序更改为:

Dim claimedId As String = e.ClaimedIdentifier

除非您使用AXFetchAsSregTransform行为,否则您无法使用ClaimsRequest从Google获取电子邮件地址。

<强>更新: 最后关于弹出窗口在登录结束时没有消失......它应该按照你认为应该的方式工作。但是有一个“错误”,OpenIdAjaxTextBox不支持POST响应,这是由于响应有效负载的大小而要求属性时得到的。 v3.3解决了这个问题,但尚未发布。对不起。