我是 asp.netcore MVC 新手
我想根据用户的角色加载不同的 View ,例如
if (role == "Admin")
return view("admin")
else if (role == "Other")
return view("index")
我知道您可以使用 [authorize(Role = ... 和 asp.net core Identity api。
我想知道是否有人可以给我指点一个处理这个问题的好教程?
谢谢
最佳答案
这里有一些有关使用 Asp.net Core Identity 管理用户和角色以及实现基于角色的身份验证的相关文章。你可以引用一下:
Introduction to Identity on ASP.NET Core
How to work with Roles in ASP.NET Core Identity
Role-based authorization in ASP.NET Core
Adding Role Authorization to a ASP.NET MVC Core Application
然后,使用Asp.net Core身份配置应用程序并添加Role授权后。
在 View 页面中,您可以使用Context.User.IsInRole
方法检查当前用户是否属于指定角色。然后,加载相关内容。代码如下:
@if (Context.User.IsInRole("Admin"))
{
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Role" asp-action="Index">Role</a>
</li>
}
在 Controller 中,根据角色返回不同的 View 。我们可以使用HttpContext.User.IsInRole
方法来检查用户是否具有指定的角色。例如:
public IActionResult Index()
{
if (HttpContext.User.IsInRole("Admin"))
{
return View("Privacy");
}
return View();
}
此外,我们还可以使用 UserManager.IsInRoleAsync()
Method检查一下。
使用上面的示例代码,结果如下:
关于asp.net-core-mvc - 根据用户角色加载不同的 View asp.net core mvc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66873146/