3

次のような Web サービスに OAuth を実装しようとしています。

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

Authenticate メソッドが起動するたびに、WebOperationContext.Current.IncomingRequest存在しますが、 UriTemplateMatchnull です。これは、WCF テスト クライアントを使用する場合にも当てはまるため、クライアント アプリは問題ではありません。最終的には、QueryParametersunderにアクセスする必要がありますUriTemplateMatch

このAuthenticateメソッドでは、コードが壊れる場所は次のとおりです。

NameValueCollection pa = context.UriTemplateMatch.QueryParameters;

これとは異なる解決策を探して、すべてが 1 つの要求で処理されるようにします。

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

また、解決策と同じくらい、WCF サービスの場合にのみUriTemplateMatch が null になる理由を探しています。この問題の存在に関する記事は何百もありますが、適切な解決策や説明は見つかりませんでした。私の中に何かが欠けているのではないかと思います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 パラメーターをアタッチするには 2 つの方法があります。1 つはヘッダーを使用する方法、もう 1 つはクエリ文字列を使用する方法です。どちらも有効であるため、クエリ文字列に oauth パラメーターをアタッチすることを選択します。それらの oauth パラメーターがヘッダーにある場合、IncomingWebRequestContext.Headers からそれらを取得するのに問題はありません。

この解決策は私からのものではありません。このリンクを確認してください。

于 2014-10-20T13:12:59.690 に答える