【问题标题】:Adding role to AspNetUserRoles table in ASP.NET Identity将角色添加到 ASP.NET Identity 中的 AspNetUserRoles 表
【发布时间】:2016-07-25 01:53:50
【问题描述】:

我在我的MVC 应用程序中使用ASP.NET Identity 2.0,我想通过向 AspNetUserRoles 表添加 2 条记录来为首次登录系统的用户分配 2 个默认角色UserIdRoleId。有没有实用的方法来做到这一点?还是我必须使用DBContextEntity Framework 等添加这些默认角色(我使用EF Code First)?任何帮助,将不胜感激。

【问题讨论】:

    标签: asp.net asp.net-mvc entity-framework asp.net-identity asp.net-identity-2


    【解决方案1】:

    您可以在 AccountController、Register 方法(带有 HttpPost 的方法)中进行检查,例如:if (!MyDbContext.Users.Any()) {...}

    如果没有用户,则为新创建的用户分配角色:UserManager.AddToRoleAsync

    【讨论】:

      【解决方案2】:

      在注册帖子操作中创建用户记录后

      var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
      var result = await UserManager.CreateAsync(user, model.Password);
      

      您可以添加角色

      await UserManager.AddToRoleAsync(user.Id, "role1");
      await UserManager.AddToRoleAsync(user.Id, "role2");
      

      【讨论】:

      • 非常感谢您的回复。可以分配 oles,但我无法使用代码的第一部分在 AspNetUsers 表中创建新用户。可以看看吗?
      • 另一方面,我还需要将这些新角色添加到 AspNetUserRoles 表中,但我不确定您的代码是否也可以执行此操作。
      • @binary 前两行代码来自默认的 mvc5 模板,这就是将新的 ApplicationUser / IdentityUser 插入数据库的方式。其他两行代码使用 asp.net-identity 将用户分配给这些角色。在 AspNetUserRoles 内的数据库中,您将看到两个新条目 {userId and role1Id} 和 {userId and role2Id}
      猜你喜欢
      • 2015-08-29
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      • 2020-03-02
      相关资源
      最近更新 更多