我用权限注释标记了我的控制器,但是想要免除其中一种方法......可以这样做吗?如何?
[Authorize(Roles="Admin")]
public class ProductController : Controller
{
[DEAUTHORIZE]
public ActionResult Start(int it)
{ ... }
答案 0 :(得分:4)
在MVC 4中引入了AllowAnonymousAttribute,它告诉动作调用者跳过AuthorizeAttribute。
[AllowAnonymous]
答案 1 :(得分:2)
不,这不可能。实现此目标的标准方法是在单独的控制器中简单地移动Start
操作。另一种可能性是构建自定义IFilterProvider,它会有条件地应用授权属性,而不是手动将其烘焙到ProductController
。例如,NInject使用它并在配置动作过滤器时提供pretty fluent syntax。您可以conditionally apply them根据当前上下文。