我正在实现一个从 AuthorizeAttribute 继承的自定义授权过滤器。经过我的研究,我发现动作过滤器被缓存了,所以它们只被实例化一次。
这是我的问题。如果我实现并使用如下所示的自定义操作过滤器,它应该无法正常工作,因为它会被实例化一次并且永远不会再次调用构造函数。但是当我测试时,它运行良好,所以我想有一些我不知道的东西。
谁能清楚地解释这个(动作过滤器生命周期?)?
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
private readonly string value = string.Empty;
public CustomAuthorizeAttribute(string value)
{
this.value = value;
}
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
// Do something with this.value
}
}
public class HomeController : Controller
{
[CustomAuthorize("ACCESS_INDEX")]
public ActionResult Index()
{
}
[CustomAuthorize("ACCESS_LOGIN")]
public ActionResult Login()
{
}
}