asp.net-mvc - 授权属性生命周期

标签 asp.net-mvc authorize-attribute

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

如果我在类级别装饰 Controller ,则在对同一 Controller 的多个请求中,authorize属性构造函数仅被调用一次。如果我装饰每个 Controller 方法,那么对于每个调用的 Controller 方法,都会得到新的authorize属性构造函数调用。

这是怎么回事?我希望authorize属性创建会发生在每个请求中。

最佳答案

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

关于asp.net-mvc - 授权属性生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19056573/

相关文章:

javascript 无法工作动态创建的 javascript alink

asp.net - 如何重写代码以在 Asp Net Web Api 中使用具有依赖注入(inject)的 IAuthorizationFilter 而不是具有服务位置的 AuthorizeAttribute?

iis - 系统无效操作异常: No authentication handler is configured to handle the scheme: Automatic

c# - ASP.NET MVC AuthorizeAttribute 将值传递给 Action 方法?

asp.net - 使用 Html.Action 调用 [ChildActionOnly] 操作方法时的安全问题

Javascript - 单击按钮时,如果未经过身份验证,则重定向到登录页面

c# - ASP.NET MVC : How to close browser window instead of returning a view?

asp.net-mvc - 如何创建从 httpget 获取相同参数的 httppost?

c# - 如何在 asp.net mvc 中正确检测用户浏览器文化

asp.net - 在 View 中使用 RenderPartial 时不显示 ValidationSummary()