DotNetOpenAuth Не работает на Live Server - PullRequest
0 голосов
/ 01 апреля 2011

Я работал над примером приложения, интегрирующего OpenID в ASP.NET Web Forms.Он прекрасно работает, когда размещается локально на моей машине.Однако, когда я загрузил приложение на работающий сервер, оно начало выдавать «Ошибка входа».

Пример можно попробовать здесь: http://samples.bhaidar.net/openidsso

Есть идеи?* Вот исходный код, который не может обработать ответ OpenID:

   private void HandleOpenIdProviderResponse()
    {
        // Define a new instance of OpenIdRelyingParty class
        using (var openid = new OpenIdRelyingParty())
        {
            // Get authentication response from OpenId Provider Create IAuthenticationResponse instance to be used
            // to retreive the response from OP
            var response = openid.GetResponse();

            // No authentication request was sent
            if (response == null) return;

            switch (response.Status)
            {
                // If user was authenticated
                case AuthenticationStatus.Authenticated:
                    // This is where you would look for any OpenID extension responses included
                    // in the authentication assertion.
                    var fetchResponse = response.GetExtension<FetchResponse>();

                    // Store the "Queried Fields"
                    Session["FetchResponse"] = fetchResponse;

                    // Use FormsAuthentication to tell ASP.NET that the user is now logged in,
                    // with the OpenID Claimed Identifier as their username.
                    FormsAuthentication.RedirectFromLoginPage(response.ClaimedIdentifier, false);
                    break;
                // User has cancelled the OpenID Dance
                case AuthenticationStatus.Canceled:
                    this.loginCanceledLabel.Visible = true;
                    break;
                // Authentication failed
                case AuthenticationStatus.Failed:
                    this.loginFailedLabel.Visible = true;
                    break;
            }

        }

Ответы [ 2 ]

2 голосов
/ 26 сентября 2011

Как предложил Эндрю, проверьте исключение. В моем случае время и дата на моем производственном сервере были выключены, и проверка подлинности не выполнялась, поскольку срок действия билета истек.

1 голос
/ 03 апреля 2011

Включите ведение журнала на своем действующем сервере и осмотрите их для дополнительной диагностики. Скорее всего, это проблема с брандмауэром или разрешениями на вашем сервере, которая предотвращает исходящие HTTP-запросы.

Вам также может быть полезно посмотреть на свойство IAuthenticationResponse.Exception, когда аутентификация не удалась для подсказок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...