0

我希望能够获得一些强类型的方式来了解正在执行的操作。

为了澄清我正在做 AOP,如果用户有权执行该操作,我只允许访问给定的操作。

使用字符串来确定要检查的规则的问题在于,如果某些开发人员重命名操作,我不会收到一个编译错误,告诉我我的规则已损坏。

有任何想法吗??

4

1 回答 1

1

开发一个执行检查的属性。将该属性与任何必要的选项一起应用于您要保护的操作。编写单元测试来检查有问题的操作是否存在并用您的属性(使用适当的选项)进行修饰。在您的属性中,您不需要知道正在执行什么操作,只需知道当前用户是否通过了您的属性选项配置的测试。

我有几个从 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 )
 {
    ....
 }
于 2009-02-19T13:12:13.403 回答