将所有用户及其角色获取到 table asp.net mvc
Get all users and their roles they got into a table asp.net mvc
我正在尝试弄清楚如何让所有用户和他们的角色组织得井井有条 table,看到了许多不同的方法,但 none 对我有用。至少我已经掌握了一点...有人可以帮助我吗?
通过这段代码我得到了所有的角色:
var context = new ApplicationDbContext();
var roleStore = new RoleStore<IdentityRole>(context);
var roleManager = new RoleManager<IdentityRole>(roleStore);
var roles = (from r in roleManager.Roles select r.Name).ToList();
ViewBag.Roles = roles.ToList();
通过这段代码,我获得了所有注册用户:
var context = new ApplicationDbContext();
var userStore = new UserStore<ApplicationUser>(context);
var userManager = new UserManager<ApplicationUser>(userStore);
var users = (from u in userManager.Users select u.UserName).ToList();
ViewBag.Users = users.ToList();
最后用这段代码我得到了所有用户的 id
var context = new ApplicationDbContext();
var user = (from u in userManager.Users select u.Id).ToList();
ViewBag.id = user.ToList();
但是我如何获得所有用户及其角色?我真的想不通
我相信您正在使用 AspNetUserRoles table 来管理用户和角色。
您可以使用 EF 和 Linq -
在网格中优化 User/Role 的显示
[GridAction]
public ActionResult _GetUsers()
{
var users = from user in xcsnEntities.Users
select new
{
Role = user.Roles.FirstOrDefault().RoleName,
IsApproved = user.Membership.IsApproved,
Email = user.Membership.Email,
UserName = user.UserName
};
return View(new GridModel(users));
}
这是获取用户列表(带有用户名)和相关角色列表的一个选项。
控制器:
public ActionResult GetRoles()
{
var userRoles = new List<RolesViewModel>();
var context = new ApplicationDbContext();
var userStore = new UserStore<ApplicationUser>(context);
var userManager = new UserManager<ApplicationUser>(userStore);
//Get all the usernames
foreach (var user in userStore.Users)
{
var r = new RolesViewModel
{
UserName = user.UserName
};
userRoles.Add(r);
}
//Get all the Roles for our users
foreach (var user in userRoles)
{
user.RoleNames = userManager.GetRoles(userStore.Users.First(s=>s.UserName==user.UserName).Id);
}
return View(userRoles);
}
ViewModel
public class RolesViewModel
{
public IEnumerable<string> RoleNames { get; set; }
public string UserName { get; set; }
}
视图:简单一个
@model IEnumerable<Whosebug.Models.RolesViewModel>
@foreach (var user in Model.ToList())
{
<div> @user.UserName -- </div>
foreach (var role in user.RoleNames)
{
<div> @role </div>
}
<br />
}
我正在尝试弄清楚如何让所有用户和他们的角色组织得井井有条 table,看到了许多不同的方法,但 none 对我有用。至少我已经掌握了一点...有人可以帮助我吗?
通过这段代码我得到了所有的角色:
var context = new ApplicationDbContext();
var roleStore = new RoleStore<IdentityRole>(context);
var roleManager = new RoleManager<IdentityRole>(roleStore);
var roles = (from r in roleManager.Roles select r.Name).ToList();
ViewBag.Roles = roles.ToList();
通过这段代码,我获得了所有注册用户:
var context = new ApplicationDbContext();
var userStore = new UserStore<ApplicationUser>(context);
var userManager = new UserManager<ApplicationUser>(userStore);
var users = (from u in userManager.Users select u.UserName).ToList();
ViewBag.Users = users.ToList();
最后用这段代码我得到了所有用户的 id
var context = new ApplicationDbContext();
var user = (from u in userManager.Users select u.Id).ToList();
ViewBag.id = user.ToList();
但是我如何获得所有用户及其角色?我真的想不通
我相信您正在使用 AspNetUserRoles table 来管理用户和角色。 您可以使用 EF 和 Linq -
在网格中优化 User/Role 的显示[GridAction]
public ActionResult _GetUsers()
{
var users = from user in xcsnEntities.Users
select new
{
Role = user.Roles.FirstOrDefault().RoleName,
IsApproved = user.Membership.IsApproved,
Email = user.Membership.Email,
UserName = user.UserName
};
return View(new GridModel(users));
}
这是获取用户列表(带有用户名)和相关角色列表的一个选项。
控制器:
public ActionResult GetRoles()
{
var userRoles = new List<RolesViewModel>();
var context = new ApplicationDbContext();
var userStore = new UserStore<ApplicationUser>(context);
var userManager = new UserManager<ApplicationUser>(userStore);
//Get all the usernames
foreach (var user in userStore.Users)
{
var r = new RolesViewModel
{
UserName = user.UserName
};
userRoles.Add(r);
}
//Get all the Roles for our users
foreach (var user in userRoles)
{
user.RoleNames = userManager.GetRoles(userStore.Users.First(s=>s.UserName==user.UserName).Id);
}
return View(userRoles);
}
ViewModel
public class RolesViewModel
{
public IEnumerable<string> RoleNames { get; set; }
public string UserName { get; set; }
}
视图:简单一个
@model IEnumerable<Whosebug.Models.RolesViewModel>
@foreach (var user in Model.ToList())
{
<div> @user.UserName -- </div>
foreach (var role in user.RoleNames)
{
<div> @role </div>
}
<br />
}