将值发送到OAuth - 标头或查询字符串?

时间:2012-02-24 20:17:32

标签: asp.net oauth

请求授权(或任何其他类型的请求)时,参数oauth_tokenoauth_signature是否应通过查询字符串>通过在中添加为值来发送 > HttpWebRequest.Header 作为标题的NameValueCollection添加?

1 个答案:

答案 0 :(得分:4)

根据他们的示例ruby代码,他们在标题中查找它。

consumer = OAuth::Consumer.new(
        "API_CONSUMER_KEY",
        "API_CONSUMER_SECRET",
        :site => "https://yoursite.Desk.com",
        :scheme => :header
)

oauth_token和oauth_signature(以及以oauth_开头的所有其他参数)将作为逗号分隔的名称值对进入授权http标头,如此处所示http://tools.ietf.org/html/rfc5849#section-3.5.1

以下是使用DevDefined.OAuth library ...

的快速示例
var endPoint = new Uri("https://yoursite.Desk.com");
var ctx = new OAuthConsumerContext
{
    ConsumerKey = "consumerkey1",
    ConsumerSecret = "consumersecret1",
    SignatureMethod = SignatureMethod.HmacSha1
};

var session = new OAuthSession(ctx, endPoint);
session.AccessToken = new TokenBase
{
    Token = "ACCESS_TOKEN",
    TokenSecret = "ACCESS_TOKEN_SCRET"
};

var respText = session.Request().Get().ForUri(endPoint).ToString();