どのアクションが強く型付けされたオブジェクトとして実行されています
-
05-09-2019 - |
質問
私が実行されているアクションを知ることのいくつかの強く型付けされた方法を取得することができるのが大好きだ。
ユーザーがそのアクションの権限を持っている場合、私は唯一の特定のアクションへのアクセスを許可する場所AOPをやっイムを明確にします。
をチェックするルールかを決定するための文字列を使用しての問題は、一部の開発者は、アクションの名前を変更した場合、私は私のルールが壊れていることを私に言ってコンパイルエラーを取得する文句を言わないということです。
任意のアイデア??
解決
あなたのチェックを行い、属性を開発します。保護したいアクションに、任意の必要なオプションを使用して、属性を適用します。問題のアクションが存在し、(適切なオプションで)自分の属性で装飾されていることを確認するユニットテストを書きます。あなたの属性では、あなたの属性のオプションで設定された現在のユーザーがテストに合格したばかりか、実行されるべきアクションを知る必要はありません。
私は事のちょうどこの種の操作を行い、私はAuthorizeAttributeから派生しまし異なる属性のカップルを持っています。
public class RequiresEmailAttribute : AuthorizeAttribute
{
... implements the logic to test whether the current user
... has an email address and redirects to error view if no
... email address is found
}
[RequiresEmail]
public ActionResult SendEmail( string to )
{
....
}
所属していません StackOverflow