Если вы посмотрите на журнал, вы увидите, что DotNetOpenAuth получил сообщение верификатора и распознал его как сообщение 1.0a, где в журнале говорится «полученный UserAuthorizationResponse (1.0.1)» (поскольку 1.0.1 - это способ DNOA говоря 1.0a).
Вы также заметите из журнала, что DNOA отправляет сообщение «AuthorizedTokenRequest (1.0)». Это настоятельно предполагает, что объект ServiceProviderDescription
, который вы передали в экземпляр WebConsumer
со свойством ProtocolVersion
, установленным на V10
вместо V10a
.
Вы можете правильно инициализировать ServiceProviderDescription
при первой отправке пользователя поставщику услуг, но при его инициализации без установки номера версии во второй раз при вызове WebConsumer.ProcessAuthorization
.
Другая возможность заключается в том, что поставщик услуг нарушает спецификацию OAuth 1.0a, и DotNetOpenAuth обнаруживает это и переопределяет ваши настройки и решает рассматривать поставщика услуг как просто поставщика услуг OAuth 1.0. Если это именно то, что происходит, вы увидите, что ваше собственное свойство ServiceProviderDescription
объекта ProtocolVersion
изменилось с 1.0.1 на 1.0, и ваш журнал будет содержать эту подстроку "Ожидаемый поставщик услуг OAuth в конечной точке" ...