WCFサービスクラスのコンストラクターで、現在のプリンシパルをメッセージのヘッダーで渡されたプリンシパルのプリンシパルに設定しています。
Thread.CurrentPrincipal = OperationContext.Current.IncomingMessageHeaders.GetHeader<BBPrincipal>("bbPrincipal", "ns");
これは問題なく機能しているようですが、メソッドでプリンシパルを参照すると、Thread.CurrentPrincipalがWindowsPrincipalに戻りました。
おそらく、メソッドは別のスレッドで起動しています。メソッドがサービスのコンストラクターで設定されたプリンシパルを使用していることを確認するにはどうすればよいですか?