C# OAuth 1.0实现有问题

C# OAuth 1.0实现有问题,c#,oauth,C#,Oauth,我需要在C中为微框架实现一个OAuth 1.0客户机。这是在一个与AppEngine对话的应用程序上,并且有post数据。我在http上运行,没有SSL,所以我需要使用HMAC-SHA1进行签名。我已经实现了HMAC和SHA-1,我的结果与我能找到的每个参考示例都匹配。我有一个使用PythonOAuth客户机的工作客户机,但是提取信息是一件非常痛苦的事情,所以我所能做的基本上就是检查它使用超级有用的页面发送的标题 我知道的是: 1.) Url = http://www.ericgiguere.

我需要在C中为微框架实现一个OAuth 1.0客户机。这是在一个与AppEngine对话的应用程序上,并且有post数据。我在http上运行,没有SSL,所以我需要使用HMAC-SHA1进行签名。我已经实现了HMAC和SHA-1,我的结果与我能找到的每个参考示例都匹配。我有一个使用PythonOAuth客户机的工作客户机,但是提取信息是一件非常痛苦的事情,所以我所能做的基本上就是检查它使用超级有用的页面发送的标题

我知道的是:

1.)  Url = http://www.ericgiguere.com/tools/http-header-viewer.html
2.)  Method = POST
3.)  Body = Hello [Hex: 48 65 6c 6c 6f]

4.)  Timestamp = 1316541449
5.)  Nonce = 83950705

6.)  Consumer Key = www.paulhounshell.com
7.)  OAuth Token = 1/8xRHqPyi8ejwjc3TSoNakWLrzj45yy6rTG0pkDx-pWo
8.)  Consumer Secret = [It's a secret]
9.)  OAuth Secret = [Also a secret]
以下是我得出的结论:

10.) Body SHA1 Hash = 9/+ei3uy4Jtwk1pdeF4MxdnQq/A= (From 3)
11.) Signature Base String = POST&http://www.ericgiguere.com/tools/http-header-viewer.html&oauth_body_hash%3D9%2F%2Bei3uy4Jtwk1pdeF4MxdnQq%2FA%3D%26oauth_consumer_key%3Dwww.paulhounshell.com%26oauth_nonce%3D83950705%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1316541449%26oauth_token%3D1%2F8xRHqPyi8ejwjc3TSoNakWLrzj45yy6rTG0pkDx-pWo%26oauth_version%3D1.0
     (From 1, 2, 4, 5, 6, 7, 10 - Probably Wrong)
12.) Key = [ConsumerSecret]&[OAuthSecret] (From 8, 9)
13.) Signature = VjIwjKwmvFMe6ewBNwfiPscIPo0= (From 11, 12, Definitely Wrong)
14.) Authorization = OAuth realm="http://www.ericgiguere.com", oauth_body_hash="9%2F%2Bei3uy4Jtwk1pdeF4MxdnQq%2FA%3D", oauth_consumer_key="www.paulhounshell.com", oauth_token="1%2F8xRHqPyi8ejwjc3TSoNakWLrzj45yy6rTG0pkDx-pWo", oauth_signature_method="HMAC-SHA1", oauth_signature="VjIwjKwmvFMe6ewBNwfiPscIPo0%3D", oauth_timestamp="1316541449", oauth_nonce="83950705", oauth_version="1.0"
在我的工作客户中,我得到:

15.) Authorization = OAuth realm="http://www.ericgiguere.com", oauth_body_hash="9%2F%2Bei3uy4Jtwk1pdeF4MxdnQq%2FA%3D", oauth_nonce="83950705", oauth_timestamp="1316541449", oauth_consumer_key="www.paulhounshell.com", oauth_signature_method="HMAC-SHA1", oauth_version="1.0", oauth_token="1%2F8xRHqPyi8ejwjc3TSoNakWLrzj45yy6rTG0pkDx-pWo", oauth_signature="4GNDFN2%2FQoJxa2fzVq7sAN9NDxE%3D"
16.) Signature = 4GNDFN2/QoJxa2fzVq7sAN9NDxE= (From 15, Proves 13 Wrong)
我怀疑问题在于构建签名基字符串,可能是在编码中,但我不确定。有OAuth经验的人知道我在哪里破产了吗


如果您有一个签名基字符串供我测试,我可以快速返回以验证它是否正确,但我不想发布我的秘密,这就是为什么它们是秘密的原因。

在签名基字符串中,数据需要进行两次URL编码。一次是url参数,第二次是将参数连接在一起