如何在 ASP.NET 中显示分配的用户角色?

问题描述 投票:0回答:1

我正在学习 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 asp.net-core authorization asp.net-identity razor-pages
1个回答
0
投票

在 ASP.net Core 中,您可以使用身份模型来确保项目安全并让用户获得指定的声明。

在身份模型中,我们有以下项目用于控制项目的安全性:User、Role、UserClaim、UserToken、UserLogin、RoleClaim、UserRole。 提到的每个项目代表与用户身份相关的项目。 根据图中显示的表格,您必须组合相关表格中的数据才能找到您最喜欢的数据,例如,有一个名为 AspnetRoles 的标准 Microsoft 表,其中包含字符串格式的系统角色,例如 ADMIN 或会计师或其他内容。

如果您想在 Web 服务中为您的项目创建一个身份系统,您可以根据请求的输入创建报告 Web 服务,例如,如果您想创建一个 Web 服务来获取系统中所有角色的列表,您应该创建一个选择对 AspnetRoles 和其他项目的查询,就像这样。

希望这篇评论对你有帮助

© www.soinside.com 2019 - 2024. All rights reserved.