2011-06-21 73 views
1

我已经使用权威注释标记了我的控制器,但想豁免其中一种方法......可以这样做吗?怎么样?授权例外

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

回答

2

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

+0

感谢您的直接答复。将调查NInject ...看起来很有趣。 – ekkis

4

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

[AllowAnonymous]