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