いくつかの操作を行う WCF サービスがあります。各操作には、次のような「PrincipalPermission」タグがあります。
[PrincipalPermission(SecurityAction.Demand, Role = "Administrator")]
public ProductsDto GetAllProducts()
{
// Do operation here ...
}
問題は、ユーザーが「管理者」ロールの一部ではない場合、サービスが例外をスローすることです
プリンシパル許可のリクエストに失敗しました
これにより、クライアントのチャネルが「障害」状態になります。
これをどうにかキャッチして、クライアントに「障害」メッセージを送信できるようにしたいのですが、
これにより、クライアントは、チャネルを失敗させることなく、すべきでないことをしようとしたことを知ることができます!
操作内で「try-catch」ブロックを使用しようとしましたが、役に立ちませんでした。例外は、操作自体の「外部」で発生します。
どうすればこれを解決できますか?