sql-server - 管理员如何在 ASP.NET Core 中更改 SQL Server 中的数据?
问题描述
我正在尝试添加一个控制器,ApplicationUser.cs
以便当管理员登录时,他们能够查看、编辑、删除dbo.AspNetUsers
表中的任何记录,但是我认为我做错了。
<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();
}
但我认为提交按钮链接到错误的表单帖子,因为当我调试活动时为空!并且我的 SQL Server 没有任何变化。如何管理它?
解决方案
要添加、删除和修改用户和角色,AspNetUsers
您必须使用UserManager
和RoleManager
服务。不要尝试直接使用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);
推荐阅读
- java - 如何获取 azure 用户列表关闭多因素身份验证
- python - 与 BatchNormalization 层相关的 Keras 属性可训练和训练
- c - 如何使用 MSP430 通过串行发送字符串而不是字符?( Code Composer Studio(C 语言))
- reactjs - 如何在 React 中单击按钮时删除表格行
- python - 无法在 qml(PyQt5) 中导入 qtlottie
- python-3.x - 如何授予自己的机器人查看类别的权限?
- sim800 - 服务器未收到 SIM808 发送的数据
- reactjs - GraphQL 错误:在 SimplSchema 上将循环结构转换为 JSON
- python - 结果:失败异常:OSError:[Errno 30] Python 和 Azure Function 上的只读文件系统
- azure-active-directory - 通过 AAD 的 SSO 在 IE 模式下使用 MS Edge(铬)失败