コントローラーからサービスレイヤーにユーザー情報を渡そうとしています。
IClientMessageInspectors
そしてIDispatchMessageInspectors
、最も可能性の高い解決策のようです。
HTTP ユーザー エージェント メッセージ インスペクターの構築 と WCF メッセージ インスペクターの作成を行った後、メッセージ ヘッダーに情報を追加する方法とそれを読み取る方法についてかなりのアイデアが得られました。
私が理解できないのはこれです:
でユーザー情報を取得するにはどうすればよい
IClientMessageInspector
ですか?コントローラの内部で、私は訴えてい
User.Identity.Name
ました。ただし、User オブジェクトはメッセージ インスペクタでは使用できません。この情報をメッセージ インスペクターに含める 1 つの方法は、コンストラクターに渡すことですが、MessageInspector オブジェクトを明示的に作成することはないため、ユーザー情報をコンストラクターに渡すにはどうすればよいでしょうか。編集:最初の質問に対する答えが見つかりました。ユーザー情報は System.Threading.Thread.CurrentPrincipal.Identity.Name で取得できます。まだ第二部にこだわっています。
サービスメソッド内でユーザー情報を利用できるようにする方法は?
ヘッダーを調べて、DispatchMessageInspector のメッセージ ヘッダーからユーザー情報をフェッチすることはできますが、操作コントラクトの 1 つでこの情報を利用できるようにするにはどうすればよいでしょうか?