WCFすべてのサービスコールで追加のセキュリティデータを渡す
-
07-07-2019 - |
質問
クライアント側情報を渡す必要があります(この例では、文字列を言うことができます)。サービスは、この文字列(currentRole)とユーザー/パスの資格情報を使用して、現在の役割に関連付けられたユーザーのクレームセットを取得します。
これまでに遭遇した解決策は次のとおりです。
1)クライアントから送信されるメッセージヘッダーを変更し、メッセージヘッダーがサービス側にあることを確認します。
2)文字列を保存するには、カスタムセキュリティトークンを必要とするカスタムクレデンシャルを使用します。
既存のトークン/資格情報に情報を追加するなど、私が見落としている他のアプローチはありますか?また、上記のソリューションの長所/短所はありますか?
ありがとう。
解決
このヘッダーをメッセージに追加するクライアント側の動作を記述することもできます(したがって、コードで自分で行うことを考える必要はありません)。
IClientMessageInspector
を実装し、 BeforeSendRequest
メソッドのオーバーライドでメッセージヘッダーを追加できます。この動作を各クライアントエンドポイントに追加すると、各送信メッセージにそのメッセージヘッダーが自動的に追加されます。
こちらをご覧ください CodeProjectの記事いくつかのスターター情報、およびこの詳細なノウハウについては、ブログの投稿をご覧ください。
マーク
所属していません StackOverflow