用户角色未保存在ASP.NET标识中

时间:2014-06-25 03:56:18

标签: c# asp.net-mvc asp.net-identity

我正在使用Entity Framework 6运行MVC 5并使用ASP.NET身份验证。由于某种原因我无法弄清楚,我似乎无法将用户分配到角色并坚持下去。请考虑以下代码:

List<string> roles_1, roles_2;
using (ApplicationDbContext context = new ApplicationDbContext())
{
    UserManager<ApplicationUser> userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
    userManager.AddToRole(User.Identity.GetUserId(), "Webmaster");
    context.SaveChanges();
    roles_1 = userManager.GetRoles(User.Identity.GetUserId()).ToList();
}
using (ApplicationDbContext context = new ApplicationDbContext())
{
    UserManager<ApplicationUser> userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
    roles_2 = userManager.GetRoles(User.Identity.GetUserId()).ToList();
}

运行此代码后,&#34; roles_1&#34;其中有一个项目(&#34;网站管理员&#34;)和&#34; roles_2&#34;是空的。不知何故,角色分配并没有在上下文之间进行保存。当我直接查看AspNetUserRoles表时,该行和该角色之间存在一行链接。因此,它正确地保存了它,但新的上下文没有正确加载它。有关为什么会这样的想法吗?

0 个答案:

没有答案