我正在使用ASP.NET核心默认网站模板,并将身份验证 Select 为"个人用户帐户".如何创建角色并将其分配给用户,以便使用控制器中的角色筛选访问权限?

推荐答案

我在Accounts控制器中创建了一个操作,它调用一个函数来创建角色,并将Admin角色分配给默认用户.(您可能应该删除生产中的默认用户):

    private async Task CreateRolesandUsers()
    {  
        bool x = await _roleManager.RoleExistsAsync("Admin");
        if (!x)
        {
            // first we create Admin rool    
            var role = new IdentityRole();
            role.Name = "Admin";
            await _roleManager.CreateAsync(role);

            //Here we create a Admin super user who will maintain the website                   

            var user = new ApplicationUser();
            user.UserName = "default";
            user.Email = "default@default.com";

            string userPWD = "somepassword";

            IdentityResult chkUser = await _userManager.CreateAsync(user, userPWD);

            //Add default User to Role Admin    
            if (chkUser.Succeeded)
            {
                var result1 = await _userManager.AddToRoleAsync(user, "Admin");
            }
        }

        // creating Creating Manager role     
        x = await _roleManager.RoleExistsAsync("Manager");
        if (!x)
        {
            var role = new IdentityRole();
            role.Name = "Manager";
            await _roleManager.CreateAsync(role);
        }

        // creating Creating Employee role     
        x = await _roleManager.RoleExistsAsync("Employee");
        if (!x)
        {
            var role = new IdentityRole();
            role.Name = "Employee";
            await _roleManager.CreateAsync(role);
        }
  }

之后,您可以创建一个控制器来管理用户的角色.

Asp.net相关问答推荐

在具有多个项目(API/服务/数据等)的解决方案中编写 SignalR 服务的最佳方法是什么?

逐步 ASP.NET 自动构建/部署

log4net 记录所有未处理的应用程序错误

在正则表达式中允许 -(破折号)

C# ASP.NET Core Serilog 添加类名和方法到日志(log)

判断 asp.net mvc 4 应用程序中的 ssl 协议、密码和其他属性

如何为发布模式设置调试错误

Azure Service Fabric 是否与 Docker 做同样的事情?

解析器错误消息:文件/TestSite/Default.aspx.cs不存在

如何使图像的一部分成为可点击的链接

如何更改 .ASPX 自动格式化设置 (Visual Studio)

使用 JSON.NET 解析 json 字符串

如何在 ASP.NET 应用程序中使用 jQuery 捕获提交事件?

如何通过后面的代码不显示

如何将 ASP.NET MVC5 身份验证添加到现有数据库

在 ASP.NET 4.5 WebForms 中通过 bundle.config 与 BundleConfig.cs Bundle 资源

在 ApiController 中添加自定义响应头

具有自定义报告创建能力的最佳 ASP.NET 报告引擎

ASP.NET 5 (vNext) - 获取配置设置

可以在不 destruct 站点的情况下将 MIME 类型添加到 web.config 吗?