授权属性生命周期

Dan*_*iel 8 asp.net-mvc authorize-attribute

有人可以解释为什么授权属性生命周期似乎是相对于它应用的类或方法进行管理的?这与相对于请求生命周期进行管理相反.

如果我在类级别修饰控制器,则只有在对同一个控制器的多个请求中调用一次授权属性构造函数.如果我装饰每个控制器方法,那么我会为每个调用的控制器方法获取新的authorize属性构造函数调用.

什么是这种行为?我希望每个请求都能创建授权属性.

Mar*_*sen 9

ASP.NET MVC将缓存ActionFilters并尝试在后续请求中重用它们.实际授权将在每个请求上发生,但构造函数将仅在第一个请求时被调用.您不应该在ActionFilter中维护任何内部状态.