1

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

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

2 回答 2

4

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

[AllowAnonymous]
于 2013-04-27T12:47:06.797 回答
2

不,这是不可能的。实现这一点的标准方法是简单地将Start动作移出单独的控制器。另一种可能性是构建一个自定义IFilterProvider,它将有条件地应用授权属性,而不是手动将其烘焙到ProductController. 例如 NInject 使用它并提供非常流畅的语法来配置操作过滤器。您可以根据当前上下文有条件地应用它们。

于 2011-06-21T07:33:15.747 回答