使用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/