ユーザーに機能へのアクセス権があるかどうかを確認する(ユーザーまたはロールを階層的な関数セットのアイテムに関連付けることができる)CustomAuthorize
属性があります。与えられたアクションメソッドの場合デザイン/ビルド時にカスタム属性のパラメータを確認する
...
[CustomAuthorize("Security.Admin.ManageWidgets.Update")]
これは動作しますが、私はセキュリティオブジェクトへの変更は、実行時まで検出されません問題を引き起こす可能性があることを心配。私はこのリスクを軽減するための単体テストを書くことができますが、コンパイル時に属性パラメータをチェックできるかどうかを知りたいと思います。私はIntellisenseにこの表現を入力させるのも好きです。
理想的には、ラムダ式を渡すことができます。
[CustomAuthorize(i => i.Admin.ManageWidgets.Update)]
残念ながら、このis not currently possible(additional info from Microsoft)。
また、式が評価され、文字列として属性に渡されることを期待して式をカプセル化しようとしましたが、同じエラー(式は匿名メソッドまたはラムダ式を含むことはできません)でコンパイルできませんでした。
[CustomAuthorize(LambdaToString(i => i.Admin.ManageWidgets.Update))]
は、どのように私は私のカスタムのためのいくつかの設計時/ビルド時のサポートは、パラメータを属性を追加することができますか?
+1興味深い問題です。 – Mrchief