【问题标题】:ASP.NET MVC Roles AuthorizationASP.NET MVC 角色授权
【发布时间】:2010-10-21 07:27:34
【问题描述】:

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

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

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

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

【问题讨论】:

标签: asp.net-mvc authorization roles


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 嗨 Kieron,感谢您的回复。正如我的问题的注释部分所述,我知道这是可能的,但我希望控制器操作的默认设置不可访问,而不必使用授权属性来装饰它们。
    • 我认为这是最好的答案。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2021-09-04
      • 2011-09-03
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-21
      • 2015-09-15
      相关资源
      最近更新 更多