【发布时间】:2016-12-15 12:00:19
【问题描述】:
我最近开始了一个使用 MVC 和实体框架的新项目(对我来说是全新的)。在我的应用程序中,我有两种类型的用户,管理员和非管理员。
我已经在我的数据库中的 configuration.cs 文件中的 seed 方法中植入了一个管理员:
var userStore = new UserStore<Users>(context);
var userManager = new ApplicationUserManager(userStore);
var admin1 = new Users
{
UserName = "admin@email.com"
};
userManager.Create(admin1, "password");
AddUserAndRole(context, userManager, admin1);
AddUserAndRole 方法:
bool AddUserAndRole(ApplicationDbContext context, ApplicationUserManager um, Users user)
{
IdentityResult ir;
var rm = new RoleManager<IdentityRole>
(new RoleStore<IdentityRole>(context));
ir = um.Create(new IdentityRole("canEdit"));
ir = um.AddToRole(user.Id, "canEdit");
return ir.Succeeded;
}
迁移并运行解决方案后,我检查了 AspNetUserLogins 表以确保用户的 ID 已成功与新的声明角色相关联,但由于某种原因它没有更新,但是当我查看 AspNetRoles 表时,声明被添加到与创建的 admin1 无关的 ID 旁边。
想知道是否有人能指出我哪里出错了。
提前感谢您的帮助,如果我错过了这篇文章中的任何必需信息,请通知我。 :)
【问题讨论】:
-
声明被分配给哪个用户?
-
我检查了 AspNetUserClaims 表并且全部为空,但我还检查了 AspNetRoles 表,它创建了一个“canEdit”角色并且只提供了一个 ID,我认为它没有链接给用户。
标签: c# asp.net model-view-controller