CheckAccessをオーバーライドし、URLの一部であるカスタム認証トークンを検証するカスタムServiceAuthorizationManagerがあります。検証した後、GenericPrincipalを使用してThread.CurrentPrincipalを設定します。しかし、リクエストが最終的に私のサービスメソッドに到達すると、Thread.CurrentPrincipalがなくなり、認証マネージャーで設定したものではなくなります。何が問題なのですか?
3474 次
2 に答える
6
これを回避するには、サービス認証マネージャーを登録するサービス動作でprincipalPermissionMode="None"を設定します。これは、現在のスレッドにプリンシパルを配置しないようにwcfランタイムに指示することになっています。「カスタム」に設定すると、GenericPrincipalを使用して設定したプリンシパルが上書きされます。
于 2011-10-21T18:40:38.417 に答える
1
組み込みのメカニズムを承認に使用したくない場合、WCFでは、現在のプリンシパルをIAuthorizationPolicyを介して識別し、WCFパイプラインに適切に統合する必要があります。'Custom'のPrincipalPermissionModeを指定する必要があります。
詳細な概要については、次の記事を参照してください:WCFベースのサービスでの承認
于 2011-10-20T02:00:41.917 に答える