根据用户角色加载不同的视图 asp.net core mvc
Load different views dependant on user role asp.net core mvc
我是 asp.netcore MVC 的新手
我想根据用户的角色加载不同的视图,例如
if (role == "Admin")
return view("admin")
else if (role == "Other")
return view("index")
我知道您可以使用 [authorize(Role = ... 和 asp.net 核心身份 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 核心身份配置应用程序并添加角色授权后。
在查看页面中,您可以使用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>
}
在控制器中,根据角色return不同的视图。我们可以使用 HttpContext.User.IsInRole
方法来检查用户是否在指定的角色中。例如:
public IActionResult Index()
{
if (HttpContext.User.IsInRole("Admin"))
{
return View("Privacy");
}
return View();
}
此外,我们还可以使用UserManager.IsInRoleAsync()
Method来查看。
使用上面的示例代码,结果如下:
我是 asp.netcore MVC 的新手
我想根据用户的角色加载不同的视图,例如
if (role == "Admin")
return view("admin")
else if (role == "Other")
return view("index")
我知道您可以使用 [authorize(Role = ... 和 asp.net 核心身份 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 核心身份配置应用程序并添加角色授权后。
在查看页面中,您可以使用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>
}
在控制器中,根据角色return不同的视图。我们可以使用 HttpContext.User.IsInRole
方法来检查用户是否在指定的角色中。例如:
public IActionResult Index()
{
if (HttpContext.User.IsInRole("Admin"))
{
return View("Privacy");
}
return View();
}
此外,我们还可以使用UserManager.IsInRoleAsync()
Method来查看。
使用上面的示例代码,结果如下: