我们在[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("....")
因为这似乎是维护/重复代码的噩梦。我想如果他们给了我们这个属性,他们也给了一个内置的方法来从视图中检查它。
如果没有(我自己找不到),我会自己写,但想避免潜在的轮子改造。