管理员如何更改 SQL 服务器中 ASP.NET 核心中的数据?

How admin can change data in SQL Server in ASP.NET Core?

我正在尝试为 ApplicationUser.cs 添加一个控制器,以便当管理员登录时,他们能够查看、编辑、删除 dbo.AspNetUsers table 但是我认为我做错了。

 <form asp-controller="Admin" asp-action="ActiveUser" method="post">
            <input type="hidden" asp-for="@user.Email" />
            <button type="submit" class="btn btn-primary">Active</button>
        </form>

管理员控制器:

  [HttpGet]
    public IActionResult ActiveUser() { return View(); }


    [HttpPost]
    public async Task<ActionResult> ActiveUser(ApplicationUser Model)
    {
         var active =_userManager.Users.FirstOrDefault(p => p.Email == Model.Email);
        if (active != null)
        {
            active.IsActive = true;
            using (var transaction = _application.Database.BeginTransaction())
            {
                try
                {

                    await _application.SaveChangesAsync();
                    transaction.Commit();

                }
                catch (Exception ex)
                {
                    _ = (ex.Message);
                    transaction.Rollback();
                    return View("Er");
                }
            }
        }
        return View();
    }

但我认为提交按钮链接到错误的表单 post 因为当我调试时 active 为空!我的 SQL 服务器没有变化。如何管理?

要添加、删除和修改 AspNetUsers 中的用户和角色,您必须使用 UserManagerRoleManager 服务。不要尝试直接使用 DbContext.

修改实体

因此,要创建用户,请调用 UserManager.CreateAsync() 方法。 保存对用户调用的更改 UserManager.UpdateAsync()

示例 - 要通过电子邮件地址查找用户,更改 属性 然后保存更改:

var currentUser = await _userManager.FindByEmailAsync(email);
currentUser.IsActive = true;
await _userManager.UpdateAsync(currentUser);

同样适用于用户所在的角色。使用RoleManager服务添加和删除角色。

if (!await roleManager.RoleExistsAsync(roleName))
{
    await roleManager.CreateAsync(new IdentityRole(roleName));
}
await userManager.AddToRoleAsync(currentUser, roleName);

Microsoft docs with some examples of updating users and roles