1

現在、インターネットに公開されているWCFRESTサービスがたくさんあります。複数のモバイルデバイスがこれらのサービス(iOS、Android、Symbianなど)と一連のクロスプラットフォームソリューションを消費します。

私たちが最初にしたことは、すべてがSSL上で実行されることを確認することでした。ただし、これらのRESTサービスを呼び出すデバイスが認証されていることを確認する必要があります。たとえば、体内の人のID番号を取得するRetrieveBalance POSTがある場合、ANYBODYは他のID番号を使用してこのメ​​ソッドを呼び出し、残高を取得できます。

(たとえば)人の残高を取得する前に、基本的にユーザー名とパスワード/PINに対して認証するためにすべての呼び出しが必要です。

WCF RESTに、さまざまな異なるプラットフォームで機能するこのようなことを行う方法はありますか?私のアイデアは、ユーザー名とパスワードをヘッダーに追加し、次を使用してサーバー上で取得することでした。

 var username = WebOperationContext.Current.IncomingRequest.Headers["Username"];
 var pwd = WebOperationContext.Current.IncomingRequest.Headers["Password"];

これを行うためのより良い方法はありますか?

4

2 に答える 2

0

使用している場合は<security mode="Transport">、カスタム ユーザー/パス バリデータを使用して基本的なユーザー/パス資格情報タイプを実装します (IIS モジュールは不要です)。それができない場合、最も簡単な方法は、ユーザー名とパスワードの引数を各サービス メソッドに追加し、呼び出しごとに確認することです。粗雑ですが、うまくいくはずです。

于 2012-05-04T19:03:13.170 に答える
0

HTTPS を使用している場合は、基本認証を使用できます。IIS でサービスをホストしている場合は、カスタム ユーザー名とパスワードの検証が少し難しくなります (既定の実装では Windows アカウントが必要です) が、カスタム モジュールを介して可能です。この問題は、カスタム ユーザー名パスワード バリデーターを実装できるため、サービスをセルフ ホスティングする場合には存在しません。

于 2012-05-02T08:52:26.580 に答える