是否可以在MVC控制器中禁用一个操作的授权?

jaf*_*ffa 56 asp.net-mvc

我在控制器上有一个授权属性,但是我想在一个动作上将其关闭.我创建了自己的授权过滤器,并在"角色"列表中添加了"匿名".在我的过滤器中,如果Anonymous出现在角色列表中,则返回true.

但是,它似乎没有通过登录页面,好像控制器授权正在抢占其他任何东西.

Kyl*_*yle 107

您可以添加[Authorize]到控制器类,然后添加[AllowAnonymous]到您不希望获得授权的单个操作.例:

[Authorize]
public class AccountController : Controller
{
    public ActionResult Profile()
    {
        return View();
    }

    [AllowAnonymous]
    public ActionResult Login()
    {
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这仅适用于MVC4及更高版本,但它完美无缺 (2认同)
  • 你救了我的一天!谢谢 (2认同)