ステート マシン ワークフローをホストするために WorkFlowServiceHost (.net 3.5) を使用しています。WCF 受信アクティビティを使用して、ワークフローへの呼び出しを処理します。メッセージヘッダーの情報に基づいて、WCF 承認ポリシーを使用して、受信要求にクレームを添付しています。したがって、チェーンをさらに下ると、ServiceSecurityContext または Thread.CurrentPrincipal のみを使用して、リクエスト (ロール、ユーザーなど) に関する承認情報を取得できます。
実行する作業があるときにランタイム エンジンが発生させるイベント (つまり、receiveactivity) を処理するために、ワークフローがさまざまなスレッドをディスパッチしているため、これがうまくいかないことはわかっています。リクエストに関するコンテキスト情報 (OperationContext) は、ワークフロー内では使用できなくなりました (作業がランタイム スレッドで実行される場合を除きます)。
私がやりたいことは、ワーカー スレッドが作成される前にリクエスト (OperationContext) に関する情報を取得し、ワーカー スレッドを取得してコンテキスト情報をそれに添付し、ワークフロー インスタンス内で使用できるようにすることです。
これを行うために処理できるランタイムに何らかのイベントが必要だと考えていますが、何も思いつきません。そして、私は手動のワークフロー スケジューラを使用したくありません。どんな助けでも大歓迎です。
ありがとう!