В OpenIdProvider.GetRequest не был распознан запрос OpenID. - PullRequest
1 голос
/ 05 августа 2011

Я пытаюсь реализовать поставщика OpenId, используя DotNetOpenAuth .Я использую их 2 примера вместе, отвечающую сторону MVC и поставщика MVC.

Поставщик, размещенный по адресу: http://localhost:4864/OpenId/Provider

Проверяющий хостинг: http://localhost:54347/User/Login

Iпопробовал это с гуглом (https://www.google.com/accounts/o8/id), и я прошел аутентификацию.Когда я попробовал http://localhost:4864/OpenId/Provider.Проверяющая сторона сказала, что не найдена конечная точка openId.Когда я устанавливаю точку останова для провайдера, этот код возвращает нуль:

IRequest request = OpenIdProvider.GetRequest()

Итак, комментарий, когда запрос равен нулю, таков: No OpenID request was recognized. This may be a user that stumbled on the OP Endpoint.

Так что я думаю, что моя проблема вконец провайдера.Что мне нужно сделать, чтобы это исправить?

Ответы [ 3 ]

0 голосов
/ 09 марта 2012

в примере dotnetopenauth, когда на экране входа в систему запрашивается поставщик, и вы хотите использовать пример поставщика mvc, идентификатор для использования в вашем случае будет http://localhost:4864/

а не http://localhost:4864/OpenId/Provider

0 голосов
/ 12 сентября 2013

Для меня я использовал пример провайдера MVC. Его HomeController имел атрибут [Authorize]. Это означало, что запрос xrds не выполнен, и поэтому были получены сообщения об исключениях «Последовательность не содержит элементов» и «Конечная точка OpenID не найдена». Удаление атрибута [Authorize] позволяет успешно выполнить запрос xrds, и вы можете войти на отлаживаемый сайт в одном экземпляре Visual Studio, используя OpenID, с сайта, отлаживаемого в другом экземпляре Visual Studio.

0 голосов
/ 06 августа 2011

По соображениям безопасности DotNetOpenAuth RP по умолчанию запрещает использование OpenID, которые начинаются с http://localhost/. Для целей тестирования вы можете добавить в белый список localhost, чтобы он работал для вас:

<dotNetOpenAuth>
    <messaging>
        <untrustedWebRequest>
            <whitelistHosts>
                <!-- since this is a sample, and will often be used with localhost -->
                <add name="localhost" />
            </whitelistHosts>
        </untrustedWebRequest>
    </messaging>
</dotNetOpenAuth>
...