Ошибка dotnetOpenAuth при ошибке протокола. Это ServiceProviderDescription от TokenManager? - PullRequest
0 голосов
/ 02 марта 2012

Почему я получаю openAuth protocol error?

{"Удаленный сервер возвратил ошибку: (400) неверный запрос."}

в System.Net.HttpWebRequest.GetResponse () в DotNetOpenAuth.Messaging.StandardWebRequestHandler.GetResponse (HttpWebRequest запрос, параметры DirectWebRequestOptions) в C: \ BuildAgent \ работы \ a02b428f36957bca \ SRC \ DotNetOpenAuth \ Сообщения \ StandardWebRequestHandler.cs: линия 126

    public static readonly ServiceProviderDescription ServiceDescription = new  ServiceProviderDescription
{
    RequestTokenEndpoint = 
       new MessageReceivingEndpoint("https://www.google.com/account/OAuthGetRequestToken", HttpDeliveryMethods.AuthorizationHeaderRequest | HttpDeliveryMethods.GetRequest),
    UserAuthorizationEndpoint = 
       new MessageReceivingEndpoint("https://www.google.com/accounts/OAuthAuthorizeToken",
HttpDeliveryMethods.AuthorizationHeaderRequest | HttpDeliveryMethods.GetRequest),
    AccessTokenEndpoint = 
       new MessageReceivingEndpoint("https://www.google.com/accounts/OAuthGetAccessToken", HttpDeliveryMethods.AuthorizationHeaderRequest | HttpDeliveryMethods.GetRequest),
    TamperProtectionElements = 
       new ITamperProtectionChannelBindingElement[] { new HmacSha1SigningBindingElement() },
  };



public void StartOAuth()
{
    var consumer = new WebConsumer(GoogleConsumer.ServiceDescription, new InMemoryTokenManager("user", "pass"));
 // Url to redirect to
    var authUrl = new Uri("http://www.google.com");
 // request access
    consumer.Channel.Send(consumer.PrepareRequestUserAuthorization(authUrl, null, null));

      throw new NoRedirectToAuthPageException();
     }

1 Ответ

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

Я не знаю, может ли это вызвать ошибку, которую вы видите, но вы передаете собственный URL Google в качестве URL обратного вызова?Это кажется неправильным.Вам нужно передать URL своего собственного сайта (тот, который будет вызывать WebConsumer.ProcessUserAuthorization) в качестве первого параметра метода PrepareRequestUserAuthorization.

Я также заметил, что вы пропускаете "s""в URL вашего токена запроса: https://www.google.com/account*s*/OAuthGetRequestToken

Это очень вероятно сломает его.

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