Конечная точка OpenID не найдена - PullRequest
5 голосов
/ 26 марта 2010

Я пытаюсь использовать библиотеку 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, я получаю следующее:

Ошибка входа: это сообщение уже было обработано. Это может указывать на то, что идет повторная атака.

Ответы [ 4 ]

5 голосов
/ 26 марта 2010

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

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

4 голосов
/ 14 июня 2011

В моем случае, когда я использовал прокси для подключения к Интернету, я решил добавить следующую конфигурацию в файл web.config.

<system.net>
 <defaultProxy useDefaultCredentials="true">
  <proxy autoDetect="True" usesystemdefault="True" />
 </defaultProxy>
</system.net>
0 голосов
/ 01 апреля 2015

Проверьте web.config в вашем клиентском приложении.Есть раздел

                    <!-- Uncomment to enable communication with localhost (should generally not activate in production!) -->
                <!--<add name="localhost" />-->

So as it says - uncomment to
<add name="localhost" />
0 голосов
/ 03 июня 2013

Стоит отметить, что сообщение об ошибке «Не найдена конечная точка OpenID» может не быть точным описанием проблемы.

Для меня это было потому, что я использовал свой адрес электронной почты Gmail, но на самом деле вам нужно создать учетную запись OpenId , после чего вы получите идентификатор в формате .myopenid.com /

Введите этот идентификатор в форму, и он должен работать правильно.

...