Аутентификация в FreshBooks через DotNetOpenAuth

Я пытаюсь использовать OAuth для аутентификации для API FreshBooks из моего ASP.NET MVC Приложение C #. Вот что у меня есть на данный момент:

Я использую DotNetOpenAuth вот код, который у меня есть в действии моего контроллера

if (TokenManager != null)
{
    ServiceProviderDescription provider = new ServiceProviderDescription();
    provider.ProtocolVersion = ProtocolVersion.V10a;
    provider.AccessTokenEndpoint = new MessageReceivingEndpoint     ("https://myfbid.freshbooks.com/oauth/oauth_access.php", DotNetOpenAuth.Messaging.HttpDeliveryMethods.PostRequest);
    provider.RequestTokenEndpoint = new DotNetOpenAuth.Messaging.MessageReceivingEndpoint("https://myfbid.freshbooks.com/oauth/oauth_request.php", DotNetOpenAuth.Messaging.HttpDeliveryMethods.PostRequest);
    provider.UserAuthorizationEndpoint = new DotNetOpenAuth.Messaging.MessageReceivingEndpoint("https://myfbid.freshbooks.com/oauth/oauth_authorize.php", DotNetOpenAuth.Messaging.HttpDeliveryMethods.GetRequest);
    provider.TamperProtectionElements = new ITamperProtectionChannelBindingElement[] { new HmacSha1SigningBindingElement() };

    var consumer = new WebConsumer(provider, TokenManager);

    var response = consumer.ProcessUserAuthorization();
    if (response != null)
    {
        this.AccessToken = response.AccessToken;
    }
    else
    {
        // we need to request authorization
        consumer.Channel.Send(consumer.PrepareRequestUserAuthorization(
            new Uri("http://localhost:9876/home/testoauth/"), null, null));
    }
}

TokenManager - это тот же класс, который предоставляется с образцом DotNetOpenAuth, я установил мой потребительский секрет, который мне дал FreshBooks.

На consumer.Channel.Send (consumer.PrepareRequestUserAuthorization (...)) У меня следующее исключение:

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

Правильно ли я это делаю? На основе документации FreshBooks и примеров DotNetOpenAuth, которые должны работать правильно.

Есть ли более простой способ аутентификации с помощью OAuth, поскольку DotNetOpenAuth немного огромен для простого использования аутентификации OAuth?

5
задан p.campbell 11 February 2011 в 21:17
поделиться