我希望能够获得一些强有力的方式来了解正在执行的操作。
澄清我在做AOP的情况下,如果用户拥有该操作的权限,我只允许访问给定的操作。
使用字符串确定要检查的规则的问题是,如果某个开发人员重命名某个操作,我将不会收到编译错误,告诉我我的规则已损坏。
任何想法??
答案 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 )
{
....
}