我正在学习 ASP.NET Razor Pages。我正在尝试通过制作一个具有不同访问级别的用户和角色的简单 Web 应用程序来学习授权过程。
我可以通过 ASP.NET(Razor Pages)中的身份管理来创建用户和角色,而且我还可以设法将角色分配给用户(下面的 SQL 表),并且在身份验证和授权方面一切正常。现在我试图在角色分配文件夹的索引页面中显示用户及其角色,但无法找到在哪里可以找到用户角色的集合。 在下面的代码中,我创建了自定义用户身份 LearLogin4,并且能够检索用户和角色,但是显示 John 是管理员而 Jane 是会计师的连接在哪里?
namespace LearLogin4.Pages.RolesManager
{
public class IndexModel : PageModel
{
private readonly RoleManager<IdentityRole> _roleManager;
private readonly UserManager<LearLogin4User> _userManager;
public IndexModel(RoleManager<IdentityRole> roleManager, UserManager<LearLogin4User> userManager)
{
_roleManager = roleManager;
_userManager = userManager;
}
public IList<IdentityRole> Roles { get;set; } = default!;
public IList<LearLogin4User> Users { get; set; } = default!;
public Task<IList<string>> UserRoles { get; set; }
public async Task OnGetAsync()
{
Users= await _userManager.Users.ToListAsync();
Roles = await _roleManager.Roles.ToListAsync();
}
}
}
在 ASP.net Core 中,您可以使用身份模型来确保项目安全并让用户获得指定的声明。
在身份模型中,我们有以下项目用于控制项目的安全性:User、Role、UserClaim、UserToken、UserLogin、RoleClaim、UserRole。 提到的每个项目代表与用户身份相关的项目。 根据图中显示的表格,您必须组合相关表格中的数据才能找到您最喜欢的数据,例如,有一个名为 AspnetRoles 的标准 Microsoft 表,其中包含字符串格式的系统角色,例如 ADMIN 或会计师或其他内容。
如果您想在 Web 服务中为您的项目创建一个身份系统,您可以根据请求的输入创建报告 Web 服务,例如,如果您想创建一个 Web 服务来获取系统中所有角色的列表,您应该创建一个选择对 AspnetRoles 和其他项目的查询,就像这样。
希望这篇评论对你有帮助