asp.net-mvc-3 - ASP.NET Authorize属性和Admin用户角色

标签 asp.net-mvc-3 authorization

使用Authorize属性,我可以指定允许访问资源的角色。

[Authorize(Roles="User")]

但是,如果我有允许访问任何资源的管理员用户,我也需要指定此资源
[Authorize(Roles="User, Administrator")]

但是,也许我可以以某种方式说出管理员允许去任何地方,而不是在Authorize属性中指定此方法吗?

所以我的意思是,如果代码中的某个位置( Controller 上的或操作上的)将是此[Authorize(Roles="User")],则意味着管理员角色也可以进入该位置。

还是我可以将其设置为所有“授权”角色动态地启动应用程序?

有任何想法吗?

更新:

目前,我有一个具有Authorize属性[Authorize(Role="Administrator")]的管理员 Controller ,而我在一些具有[Authorize(Role="User")]属性的其他 Controller 中也有一些操作,因此如果我找不到更好的解决方案,我也需要在其中添加"Administrator"

最佳答案

我认为这将为您工作。使用AuthorizeAttribute创建您自己的基本 Controller ,然后使其他Controller继承您的基类。

[Authorize(Roles="Admin")]
public class MyFancyController : Controller
{
}

[Authorize(Roles = "TaxPayer")]
public class WizardController : MyFancyController
{
...

我认为这很可怕。

您有几个 Controller / Action ?如果您稍后忘记了该信息,并且可能有一个您不希望管理员访问的页面,该怎么办?

调试代码会变得更加困难吗?

关于asp.net-mvc-3 - ASP.NET Authorize属性和Admin用户角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7013511/

相关文章:

sql-server - 加载 SSIS 包时出错

sql-server - MiniProfiler - SqlParameter

javascript - 将javascript全局变量设置为JSONresult?

asp.net-mvc-3 - ASP.NET MVC 3 中的部分 View (多个部分 View 合并为一个 View )

c# - 通过 JQuery Ajax 将数组发送到 ASP.NET MVC 模型

javascript - AngularJS - 为 GET 请求设置 HTTP header

node.js - 将多个第三方和本地帐户与 Passport 链接在一起

asp.net-mvc - jQuery.POST - 使用 Form.Serialize() 传递另一个参数 - Asp.net MVC 3

java - 如何从 Android 调用 RESTful Web 服务?

file - 谷歌驱动器 : read-only without authorisation on external site