哪个操作作为强类型对象执行

时间:2009-02-19 13:07:35

标签: asp.net-mvc action

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

澄清我在做AOP的情况下,如果用户拥有该操作的权限,我只允许访问给定的操作。

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

任何想法??

1 个答案:

答案 0 :(得分: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 )
 {
    ....
 }