いくつかのBusinessBaseから継承するクラスを持つビジネスレイヤーがあります。メインの CRUD に似たメソッドには、カスタムの RequiresPermission(activityId) 属性があります。これらのメソッドはカスタム WCF サービスから呼び出されるため、そこでユーザーのアクセス許可を確認し、ユーザーが操作を実行するアクセス許可を持っていない場合、または呼び出すメソッドに RequiresPermission 属性が設定されていない場合は、例外をスローできます。これは、私のチームの他のプログラマーに対して完全に透過的に行われます。パーミッションの割り当てを忘れると、メソッド呼び出しは失敗します。
問題は、1 つのビジネス クラスが何らかのメソッドを (場合によっては他のビジネス クラスから) 直接呼び出す可能性があることです。RequiresPermission 属性が設定されていない場合、または現在認証されているユーザーが activityId を使用したアクションを使用できない場合、メソッドの実行を禁止したいと思います。
メソッド内でセキュリティチェックを呼び出すのを忘れた怠惰なプログラマーのために、セキュリティホールを回避するためにこれらのチェックを強制する方法はありますか?