1

aspNetCompatibility = "true"のwcf + rest Webサービスがあります。カスタム認証を提供するために、asp.net http モジュール: IHttpModule を作成しました。コードは非常に単純です。プリンシパルを Thread.CurrentPrinicpal プロパティに割り当てるだけです。

メソッドの実行中に、Thread.CurrentPrincipal の値として「空/デフォルト」プリンシパルを取得します。また、モジュールと操作の実行で異なるスレッド ID (Thread.CurrentThread) があることに気付きました。wcf が操作を実行するための新しいスレッドを提供するという提案がありますが、証拠は見つかりませんでした。

だから質問:私は正しいですか?wcf はその動作を制御できますか? 新しいスレッドを作成すると、プリンシパルが新しいスレッドに自動的に移動するため、ここで混乱しています。したがって、それらを「クリーン」にします..

principalPermissionMode="None" と同じ問題。

アイデアをいただければ幸いです。

乾杯!

4

1 に答える 1

0

IMO - スレッドは、すでに座っているスレッドから実行すると、プリンシパルを受け取ります。

Wcf は独自の方法でスレッドを管理します (InstanceMode によって部分的に制御されます - PerCall、PerSession など)。そのため、スレッドの詳細は伝達されません。

認証に別のモデルを使用することを検討する必要があるかもしれません。カスタム認証の詳細については、次の投稿を参照してください: http://blogs.msdn.com/b/astoriateam/archive/2010/07/21/odata-and-authentication-part-6-custom-basic-authentication.aspx

于 2013-04-18T13:14:19.343 に答える