Никакая конечная точка OpenID не найдена

Я пытаюсь пользоваться библиотекой DotNetOpenId для добавления поддержки OpenID на тестовом веб-сайте. По некоторым причинам это продолжает давать мне следующую ошибку при работе Firefox. Следует иметь в виду, что я использую localhost, поскольку я тестирую его на своей локальной машине.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DotNetOpenAuth.OpenId.Extensions.ProviderAuthenticationPolicy;
using DotNetOpenAuth.OpenId.Extensions.SimpleRegistration;
using DotNetOpenAuth.OpenId.RelyingParty;

namespace TableSorterDemo
{
    public partial class Login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var openid = new OpenIdRelyingParty();
            if (openid.GetResponse() != null)
            {
                switch (openid.GetResponse().Status)
                {
                    case AuthenticationStatus.Authenticated:
                        var fetch = openid.GetResponse().GetExtension(typeof(ClaimsResponse)) as ClaimsResponse;
                        var nick = fetch.Nickname;
                        var email = fetch.Email;

                        break;
                }
            }
        }

        protected void OpenIdLogin1_LoggedIn(object sender, OpenIdEventArgs e)
        {
            var openid = new OpenIdRelyingParty(); 
            if(openid.GetResponse() != null)
            {
                switch(openid.GetResponse().Status)
                {
                    case AuthenticationStatus.Authenticated:
                        var fetch = openid.GetResponse().GetExtension(typeof (ClaimsResponse)) as ClaimsResponse;
                        var nick = fetch.Nickname;
                        var email = fetch.Email; 

                        break; 
                }
            }


        }

        protected void OpenIdLogin1_LoggingIn(object sender, OpenIdEventArgs e)
        {
            var openid = new OpenIdRelyingParty();
            var req = openid.CreateRequest(OpenIdLogin1.Text);
            var fetch = new ClaimsRequest();
            fetch.Email = DemandLevel.Require;
            fetch.Nickname = DemandLevel.Require; 
            req.AddExtension(fetch);
            req.RedirectToProvider();
            return; 
        }


    }
}

Кроме того, если я выполняю ту же страницу в Chrome затем, я получаю следующее:

Вход в систему перестал работать: Это сообщение было уже обработано. Это могло указать на происходящую атаку с повторением пакетов.

5
задан Mat 24 December 2013 в 06:12
поделиться

1 ответ

Обнаружение атаки повторного воспроизведения является результатом вашего звонка GetResponse () дважды. Вы не должны этого делать. Вместо этого назначьте результат всего одного вызова GetResponse () локальной переменной, а затем проверьте его на нулевое значение и используйте в противном случае.

Что касается ошибки «Конечная точка OpenID не найдена», то проверяете ли вы также OpenID локального хоста или OpenID, размещенный внешней стороной, например Yahoo?

5
ответ дан 14 December 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: