我有一个母版页面,其中有一个名为user的角色菜单,其他菜单是Admin的角色,所以我愿意检查用户的角色并显示一些div标签并隐藏其他基于用户角色的。
因为,我们没有layout.cshtml的控制器,所以我如何为布局视图设置viewModel 其中我可以检查当前用户的角色
如何对layout.cshtml进行基于角色的检查。
我一直在通过以下问题,但现在还没有得到答案
How to Show or hide controls based on roles - ASP.NET MVC 4 Razor
那么,请告诉我可能的解决方案以及哪种方式最适合在layout.cshtml中应用基于角色的检查
答案 0 :(得分:11)
您可以使用User.IsInRole
方法:
@if (User.IsInRole("admin"))
{
<li>Only the admin can see this menu item</li>
}
答案 1 :(得分:3)
您可以使用以下代码进行基于角色的检查
@if(Request.IsAuthenticated)
{
if(User.IsInRole("Admin")
{
<Ul Class="SubMenuItem">
<li> this menu item is for Admin role</li>
</Ul>
}
if(User.IsInRole("User")
{
<Ul Class="SubMenuItem">
<li> this menu item is for User role</li>
</Ul>
}
}
对于未知用户
else
{
<Ul Class="SubMenuItem">
<li> this menu item is for Unknown user</li>
</Ul>
}