【发布时间】:2018-03-10 00:15:25
【问题描述】:
我创建了一个继承自 AuthorizeAttribute 的自定义 Authorize 属性。定制的一部分是记录用户对数据库的访问。
public class Authorization : AuthorizeAttribute
{
...
dbRepo.LogAccessEntry(parameters);
...
}
我希望能够在控制器级别使用它以及对某些操作进行更精细的控制,例如以下示例:
[Authorization]
public class TestController : Controller
{
public ActionResult Index()
{
...
}
[Authorization (Roles="admin")
public ActionResult SecureArea()
{
...
}
}
但是,这将导致自定义授权记录两次。我在这里查看答案https://stackoverflow.com/a/16713334/5473973,这将导致我使用覆盖属性,但不希望不必创建另一个属性来跟踪。有没有办法区分它被调用的级别或区分是否有其他属性要检查?只有在完成授权链后,才应记录访问。还是有更好的解决方案?
【问题讨论】:
标签: c# asp.net-mvc authorize-attribute