2

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>

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.

新しい Dll で何か変更がありましたか?

4

1 に答える 1

0

コードはAXFetchAsSregTransform 動作の使用に依存しています。リンクを確認し<configSections>、最新の DotNetOpenAuth で必要な新しい xml に適合するように、web.config ファイルがその領域で更新されていることを確認してください。web.config には既に AXFetchAsSregTransform が宣言されている可能性がありますが、configSections を更新するまで無視されます。

ところで、not通常は を使用する必要がありますGetUntrustedExtension

于 2012-08-23T14:15:34.023 に答える