gpt4 book ai didi

ASP.NET MVC 5 - 默认身份用户 CRUD

转载 作者:行者123 更新时间:2023-12-02 16:37:22 25 4
gpt4 key购买 nike

我是 ASP.NET MVC 新手。

我已使用默认身份个人用户帐户创建了一个应用程序。我正在尝试实现一个管理面板,我想查看所有用户、他们的角色并编辑/删除它们(CRUD 操作)。

我遇到了以下情况:

userManager.Users.ToList();

public ActionResult Index()
{
return userManager.Users.ToList();
}

我尝试过对此进行研究。不幸的是,我无法实现它。

最佳答案

在您可能正在使用的 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);

关于ASP.NET MVC 5 - 默认身份用户 CRUD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41947690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com