Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
升级DotNetOpenAuth后,OpenIdButton无法获取电子邮件地址_Openid_Dotnetopenauth - Fatal编程技术网

升级DotNetOpenAuth后,OpenIdButton无法获取电子邮件地址

升级DotNetOpenAuth后,OpenIdButton无法获取电子邮件地址,openid,dotnetopenauth,Openid,Dotnetopenauth,我一直在使用DotNetOpenAuth来使用Google应用程序进行身份验证,并要求返回电子邮件地址 当我使用以前版本的DotNetOpenAuth.dll时,我有一个工作程序。但是当我用当前版本更新Dll时,我的代码就被破坏了。应用程序能够进行身份验证,但不会回复电子邮件地址 我的代码是: <rp:OpenIdButton runat="server" ImageUrl="~/images/google.jpg" Text="Login with Google" ID="OpenIdB

我一直在使用DotNetOpenAuth来使用Google应用程序进行身份验证,并要求返回电子邮件地址

当我使用以前版本的DotNetOpenAuth.dll时,我有一个工作程序。但是当我用当前版本更新Dll时,我的代码就被破坏了。应用程序能够进行身份验证,但不会回复电子邮件地址

我的代码是:

<rp:OpenIdButton runat="server" ImageUrl="~/images/google.jpg" Text="Login with Google" ID="OpenIdButton1"
            Identifier="https://www.google.com/accounts/o8/id" LogOnMode="None" OnLoggingIn="test" OnLoggedIn="OpenIdLogin1_LoggedIn">
            <Extensions>
                <sreg:ClaimsRequest Email="Require" />
            </Extensions>

新的Dll有什么变化吗?

您的代码依赖于的使用。请查看该链接,并确保您的web.config文件在该区域中已更新,以适合最新DotNetOpenAuth所需的新xml。您的web.config可能已经声明了AXFetchAsSregTransform,但在更新configSections之前,它将被忽略


顺便说一句,您通常不应该使用GetUntrustedExtension。

您的代码依赖于使用。请查看该链接,并确保您的web.config文件在该区域中已更新,以适合最新DotNetOpenAuth所需的新xml。您的web.config可能已经声明了AXFetchAsSregTransform,但在更新configSections之前,它将被忽略


顺便说一句,您通常不应该使用GetUntrustedExtension。

很抱歉,Andrew,但您的建议无效。我尝试了Dll 4.1的最新版本。身份验证成功,但响应为空。另外,当我根据链接在Web.config文件中添加信息时,程序永远不会运行。它终止时出现以下错误DotNetOpenAuth.OpenId dll未找到谢谢Andrew的帮助。我用相同的设置重新创建了项目,解决了这个问题。虽然我不知道它是如何修复的。很抱歉,安德鲁,但你的建议不起作用。我尝试了Dll 4.1的最新版本。身份验证成功,但响应为空。另外,当我根据链接在Web.config文件中添加信息时,程序永远不会运行。它终止时出现以下错误DotNetOpenAuth.OpenId dll未找到谢谢Andrew的帮助。我用相同的设置重新创建了项目,解决了这个问题。虽然我不知道它是如何修复的。
protected void OpenIdLogin1_LoggedIn(object sender, OpenIdEventArgs e)
    {
        // Hide login button.
        OpenIdButton1.Visible = false;        

        // Get email.
        //ClaimsResponse profile = e.Response.GetExtension<ClaimsResponse>();
        ClaimsResponse profile = e.Response.GetUntrustedExtension<ClaimsResponse>();
        string email = profile.Email;  

And the code breaks at the above line.