我正在尝试为此添加一个控制器,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();
}
但是我认为Submit按钮链接到错误的表单发布,因为当我调试active时为null!而且我的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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句