授权例外

时间:2011-06-21 07:30:22

标签: asp.net-mvc-3 authentication authorize

我用权限注释标记了我的控制器,但是想要免除其中一种方法......可以这样做吗?如何?

[Authorize(Roles="Admin")]
public class ProductController : Controller
{
    [DEAUTHORIZE]
    public ActionResult Start(int it)
    { ... }

2 个答案:

答案 0 :(得分:4)

在MVC 4中引入了AllowAnonymousAttribute,它告诉动作调用者跳过AuthorizeAttribute。

[AllowAnonymous]

答案 1 :(得分:2)

不,这不可能。实现此目标的标准方法是在单独的控制器中简单地移动Start操作。另一种可能性是构建自定义IFilterProvider,它会有条件地应用授权属性,而不是手动将其烘焙到ProductController。例如,NInject使用它并在配置动作过滤器时提供pretty fluent syntax。您可以conditionally apply them根据当前上下文。