【发布时间】:2013-01-12 02:35:12
【问题描述】:
我们在控制器上使用[Authorize (Roles="yadda, yadda2")] 属性,我想知道是否有内置机制来发现他们是否可以从视图中访问?
[Authorize (Roles="System Administrator, Administrator")]
public abstract class OperationsBaseContoller : BaseController
{
// omitted
}
// some view
@if(HasAccessTo<OperationsBaseController>())
{
<a href="#somewhereInOperations">Operations Action</a>
<a href="#anotherInOps">Example</a>
<a href="#oneMore">filler</a>
}
像上面这样的东西会很棒,这样我就可以避免呈现无论如何都无法传递给他们的链接。我确实不,但是,想在User.IsInRole("....") 中再次将可用角色列表放在视图中,因为这似乎是维护/重复代码的噩梦。我想如果他们给了我们这个属性,他们也给了一个内置的方法来从视图中检查它。
如果没有(我自己找不到),我会自己写,但想避免潜在的轮子改造。
【问题讨论】:
-
您可以利用 IPrinciple 上的 User.IsInRole("Admin") 方法来实现此目的。
标签: asp.net-mvc-4 authorization roles