我是ASP.NET MVC的新手。
我使用默认身份个人用户帐户创建了一个应用程序。 我正在尝试实现一个管理面板,我想查看所有用户,他们的角色并编辑/删除它们(CRUD操作)。
我遇到了以下情况:
userManager.Users.ToList();
public ActionResult Index()
{
return userManager.Users.ToList();
}
我曾尝试过对此进行研究。不幸的是,我无法实现它。
答案 0 :(得分:1)
在您可能正在使用的ASP.NET Identity 2.0中,您需要在UserManager和RoleManager上公开。
userManager.Users.ToList();
roleManager.Roles.ToList();
您可以使用这两个管理器来创建角色并为用户分配角色。例如,要让用户担任特定角色,您可以执行以下操作:
var users = roleManager.FindByName(roleName).Users.Select(x => x.UserId);
要删除用户,您可以执行以下操作:
[ValidateAntiForgeryToken]
public async Task<ActionResult> DeleteConfirmed(string id)
{
if (ModelState.IsValid)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var user = await _userManager.FindByIdAsync(id);
var logins = user.Logins;
var rolesForUser = await _userManager.GetRolesAsync(id);
using (var transaction = context.Database.BeginTransaction())
{
foreach (var login in logins.ToList())
{
await _userManager.RemoveLoginAsync(login.UserId, new UserLoginInfo(login.LoginProvider, login.ProviderKey));
}
if (rolesForUser.Count() > 0)
{
foreach (var item in rolesForUser.ToList())
{
// item should be the name of the role
var result = await _userManager.RemoveFromRoleAsync(user.Id, item);
}
}
await _userManager.DeleteAsync(user);
transaction.commit();
}
return RedirectToAction("Index");
}
else
{
return View();
}
}
如果您想更新用户,请:
var user = UserManager.FindById(User.Identity.GetUserId())
user.Email = AppUserViewModel.Email;
user.FName = AppUserViewModel.FName;
user.LName = AppUserViewModel.LName;
user.DOB = AppUserViewModel.DOB;
user.Gender = AppUserViewModel.Gender;
var result = await UserManager.UpdateAsync(user);