18

我想将我的控制器类的角色默认设置为“管理员,内容编辑器”

[Authorize(Roles = "Administrators, Content Editor")]

我通过使用上面的属性装饰控制器来做到这一点。但是,我希望所有人都可以使用一项操作(即“查看”)。如何重置角色以便每个人(包括完全未经授权的用户)都可以访问此操作。

注意:我知道我可以使用上面的授权属性来装饰其他动作,但我不想一直这样做。我希望默认情况下所有控制器操作都无法访问,因此如果有人添加操作,他们必须做出深思熟虑的决定以使其对公众可用。

4

3 回答 3

16

MVC4 有一个新的属性正是为此而生的[AllowAnonymous]

[AllowAnonymous]
public ActionResult Register()

http://blogs.msdn.com/b/rickandy/archive/2012/03/23/securing-your-asp-net-mvc-4-app-and-the-new-allowanonymous-attribute.aspx

于 2013-02-18T00:08:29.437 回答
4

您可以将 Authorize 属性放在操作方法上。不只是在班级层面。

因此,将属性从控制器类移动到您想要保护的操作方法。

于 2009-04-23T08:21:51.343 回答
0

到目前为止,我能想到的唯一解决方案是创建和注册另一个控制器,以便我有一个用于匿名访问,一个用于授权访问,但这并不像我希望的那样优雅。

于 2009-04-23T08:15:50.733 回答