OpenIdButton не может получить адрес электронной почты после обновления DotNetOpenAuth

Я работал над 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?

1 ответ

Решение

Ваш код опирается на использование поведения AXFetchAsSregTransform. Пожалуйста, просмотрите ссылку и убедитесь, что ваш файл web.config обновлен в <configSections> область, чтобы соответствовать новому XML, требуемому последней DotNetOpenAuth. В вашем web.config, скорее всего, уже объявлен AXFetchAsSregTransform, но он игнорируется до тех пор, пока вы не обновите свои configSections.

Кстати, вы должны not обычно используют GetUntrustedExtension,

Другие вопросы по тегам