3

我正在尝试在 Web 服务中实现 OAuth,例如:

http://www.codeproject.com/Tips/372422/Secure-WCF-RESTful-service-using-OAUTH

每次,当 Authenticate 方法触发时,WebOperationContext.Current.IncomingRequest都存在,但UriTemplateMatch为 null。甚至在使用 WCF 测试客户端时也是如此,因此我的客户端应用程序不是问题。最终,我需要访问QueryParameters下面的UriTemplateMatch.

在该Authenticate方法中,这是代码中断的地方:

NameValueCollection pa = context.UriTemplateMatch.QueryParameters;

寻找与此不同的解决方案,以便在一个请求中处理所有内容:

https://stackoverflow.com/questions/7344478/using-the-wcf-http-web-api-uritemplatematch-is-always-null

此外,就像一个解决方案一样,我正在寻找一个原因,为什么 UriTemplateMatch仅在 WCF 服务的情况下才会为空。关于这个问题的存在有数百篇文章,但我还没有找到一个好的解决方案和/或解释。我想我的web.config.

4

1 回答 1

0

似乎此解决方案期待来电,例如:

http://localhost:49262/TestProject/Service.svc/user/123?oauth_consumer_key=key&oauth_nonce=10a33ed37b549301644b23b93fc1f1c5&oauth_signature=cUobFDxVB5wjPe9X2XICJ6awmnE%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1289976718&oauth_version=1.0

附加oauth参数有两种方式,一种是通过headers,另一种是通过query string,两者都有效,所以我选择在query string中附加oauth参数。如果这些 oauth 参数在标头中,则从 IncomingWebRequestContext.Headers 检索它们没有任何问题

这个解决方案不是我的。检查此链接

于 2014-10-20T13:12:59.690 回答