我添加用户并按以下代码分配角色,我首先使用ASP MVC 5身份和EF代码。
//some Code
var result = manager.Create(insert, applicationUser.PasswordHash);
IdentityResult result2 =null;
if (result.Succeeded)
{
result2 = manager.AddToRole(insert.Id, "User");
}
//Some Code
因此,我需要在类似于“用户”角色的视图中显示具有自定义角色的用户列表。我写了这段代码:
ApplicationDbContext myDbContext = new ApplicationDbContext();
var getRoleId = myDbContext.Roles.Where(r => r.Name == "User").Select(m => m.Id).SingleOrDefault();
var fetch = myDbContext.Users.Where(u => u.Roles.Any(r => r.RoleId.ToString() == getRoleId)).ToList();
return View(fetch);
getRoleId
的值是“ 4”,这是正确的,但是fetch
总是等于0。我尝试了3个4个小时以上,但我没有得到结果。我的错在哪里?解决方案是什么?
谢谢。
更新: 我在添加角色时发现了问题,但我不知道该如何解决! 使用上述方法将用户添加到角色时,用户ID将添加到UserRoles表的UserId列中,但是还有第三列称为IdentityUser_Id,始终为空。
出于好奇,我也将用户ID也添加到了该列,现在一切正常。该应用程序承担了我的用户角色。
我对此的跟进问题是我可以自动设置IdentityUser_Id吗?使用类似于UserManager.AddToRole()的东西,将userId添加到两列?
答案 0 :(得分:0)
为什么要获取getRowId而不按角色名称提取用户?尝试以下:
git commit -am "another commit"