SORU
20 Aralık 2012, PERŞEMBE


DotNetOpenAuth bir ServiceProvider ile DÜZ metin imza kullanamıyor

OAuth 1.0(a) bir yetkilendirme sunucusu DotNetOpenAuth (NuGet paketi DotNetOpenAuth.OAuth.ServiceProvider, version = 4.1.4.12333) kullanarak yapıyorum. Sunucu ASP.NET bir uygulama içinde barındırılan ama bu sorunun konuyla ilgisi yok.

ServiceProvider ben bu gibi yapılandırılmış:

private ServiceProvider GetServiceProvider()
{
    var baseUri = "http://myauth.com";
    return new ServiceProvider(
        new ServiceProviderDescription
        {
            UserAuthorizationEndpoint = new MessageReceivingEndpoint(
                new Uri(baseUri   "/get_request_token"), 
                HttpDeliveryMethods.GetRequest
            ),
            RequestTokenEndpoint = new MessageReceivingEndpoint(
                new Uri(baseUri   "/authorize"), 
                HttpDeliveryMethods.PostRequest
            ),
            AccessTokenEndpoint = new MessageReceivingEndpoint(
                new Uri(baseUri   "/get_token"), 
                HttpDeliveryMethods.PostRequest
            ),
            ProtocolVersion = ProtocolVersion.V10a,
            TamperProtectionElements = new ITamperProtectionChannelBindingElement[] 
            {
                new PlaintextSigningBindingElement(),
                new HmacSha1SigningBindingElement(),
            },
        },
        tokenManager,
        new OAuthServiceProviderMessageFactory(tokenManager)
    );
}

get_request_token benim son nokta ile ilgili kısmın da bu gibi görünüyor:

var serviceProvider = GetServiceProvider();
var tokenRequest = serviceProvider.ReadTokenRequest();

Bir tüketici bu son nokta için aşağıdaki isteği gönderdiğinde şimdi:

GET /get_request_token?oauth_nonce=C5657420BCE5F3224914304376B5334696B09B7FFC17C105A7F9629A008869DC&oauth_timestamp=1356006599&oauth_consumer_key=sampleconsumer&oauth_signature_method=plaintext&oauth_signature=samplesecret&&oauth_version=1.0&oauth_callback=http://localhost:30103/CustomOAuth1 HTTP/1.1

Host: localhost:8180
Connection: close

(netlik için kırık):

oauth_nonce=C5657420BCE5F3224914304376B5334696B09B7FFC17C105A7F9629A008869DC
oauth_timestamp=1356006599
oauth_consumer_key=sampleconsumer
oauth_signature_method=plaintext
oauth_signature=samplesecret&
oauth_version=1.0
oauth_callback=http://localhost:30103/CustomOAuth1

serviceProvider.ReadTokenRequest() yöntem bir istisna atar:

The UnauthorizedTokenRequest message required protections {All} but the channel could only apply {Expiration, ReplayProtection}.
   at DotNetOpenAuth.Messaging.Channel.ProcessIncomingMessage(IProtocolMessage message)
   at DotNetOpenAuth.Messaging.Channel.ReadFromRequest(HttpRequestBase httpRequest)
   at DotNetOpenAuth.Messaging.Channel.TryReadFromRequest[TRequest](HttpRequestBase httpRequest, TRequest& request)
   at DotNetOpenAuth.OAuth.ServiceProvider.ReadTokenRequest(HttpRequestBase request)
   at DotNetOpenAuth.OAuth.ServiceProvider.ReadTokenRequest()
   at OAuthServers.OAuth1.Services.OAuth1Service.Any(GetRequestTokenRequest request)
   at lambda_method(Closure , Object , Object )
   at ServiceStack.ServiceHost.ServiceRunner`1.Execute(IRequestContext requestContext, Object instance, TRequest request)

Eğer istemci aşağıdaki isteği gönderirse, diğer yandan

GET /get_request_token?oauth_callback=http://localhost:65271/oauth1/HandleAccessToken&oauth_consumer_key=sampleconsumer&oauth_nonce=rGFvxlWm&oauth_signature_method=HMAC-SHA1&oauth_signature=HV/5Vq+0cF3NrtiISE9k4jmgCrY=&oauth_version=1.0&oauth_timestamp=1356007830 HTTP/1.1

Host: localhost:8180
Connection: close

(netlik için kırık):

oauth_callback=http://localhost:65271/oauth1/HandleAccessToken
oauth_consumer_key=sampleconsumer
oauth_nonce=rGFvxlWm
oauth_signature_method=HMAC-SHA1
oauth_signature=HV/5Vq+0cF3NrtiISE9k4jmgCrY=
oauth_version=1.0
oauth_timestamp=1356007830

başarılı.

Bunlar arasındaki tek fark gördüğünüz gibi 2 istekleri oauth_signature_method kullanılıyor. İlk durumda PLAINTEXT ikinci HMAC-SHA1 ise kullanılır.

DotNetOpenAuth isteği PLAINTEXT imza bir yöntem olarak kabul ettirmek için mümkün olan ile birlikte token bitiş noktası fiil OAuth 1.0(a) specification POST bu son nokta için kullanılacak önerir bile)? Bazı yapılandırma seçeneği yoktursakin olsunucuda bu gereksinim?

Şu anda istemci değiştirmek benim için bir seçenek değil.

CEVAP
17 ŞUBAT 2014, PAZARTESİ


< . p ^"openglView gidiyorum tableview" - afin kullanımı ile birlikte bu deyimi dönüştürme standart navigasyon kullanmadığınız ve görüşlerini taşımak ve Otomatik aynı anda kullanmayı deneyin öneririz.

Bu kaza kısıtlamalar aykırı set ile ilgili, afin dönüşümü uygulanması ve böylece bazı kareleri karışıklık var sanırım. Herhangi bir dönüşümler yerine kısıtlamaları sabitler değiştirmeye çalışın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Keith Anthe

    Keith Anthe

    26 NİSAN 2011
  • Lin Steven

    Lin Steven

    17 EKİM 2006
  • placeboing

    placeboing

    7 Mart 2006