【问题标题】:Override ASP.NET Authorization annotations覆盖 ASP.NET 授权注释
【发布时间】:2011-05-31 13:17:56
【问题描述】:

有没有办法覆盖 ASP.Net 中的 Authorize 注释?

我正在使用 MVC,并且我的控制器带有注释:

[Authorize(Roles="Admin")]

此控制器中的大多数操作仅限于管理员用户。

我想覆盖一种操作方法,以便所有用户都可以使用它:

[HttpPost]
[Authorize(Users="*")]        
public Boolean Submit(FormCollection collection)

这不起作用,用户被重定向到登录页面。我做错了什么?

谢谢。

【问题讨论】:

  • Phil 写了一篇博客文章,如何为除一个之外的每个操作应用过滤器。这是link
  • Rick Anderson 的 blog post 试图以优雅的方式解决您提到的场景。

标签: c# .net asp.net asp.net-mvc security


【解决方案1】:

我认为您应该能够通过简单地从控制器中删除属性并仅在需要时将其移动到方法来实现您想要做的事情。

【讨论】:

    【解决方案2】:

    首先检查类级别属性,导致您描述的行为。

    您需要将 less 限制性角色放在类属性上,然后将 more 限制性角色属性放在相关操作上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-08
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多