gpt4 book ai didi

c# - 扩展 UserManager 以允许管理新用户数据?

转载 作者:行者123 更新时间:2023-11-30 21:43:12 28 4
gpt4 key购买 nike

ASPNET Identity 中的 UserManager 包含 AddPasswordAsyncSetPhoneNumberAsync 等函数。

我已经为 FirstName 和 LastName 添加了属性,他们的值在我注册用户时没有设置,所以我想添加屏幕来管理这些值(设置和更改它们)。

我如何扩展 UserManager 以添加像 AddNamesAsync 这样的函数来执行此操作?

当我们如下评估 ManageController 操作时,这样的功能变得必要:

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> SetPassword(SetPasswordViewModel model)
{
if (ModelState.IsValid)
{
var result = await UserManager.AddPasswordAsync(User.Identity.GetUserId(), model.NewPassword);
if (result.Succeeded)
{
var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());
if (user != null)
{
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
}
return RedirectToAction("Index", new { Message = ManageMessageId.SetPasswordSuccess });
}
AddErrors(result);
}

// If we got this far, something failed, redisplay form
return View(model);
}

按照同样的逻辑,我想给 Controller 添加一个函数如下:

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> SetNames(SetUserFullNamesViewModel model)
{
if (ModelState.IsValid)
{
var result = await UserManager.AddNamesAsync(User.Identity.GetUserId(), model.FirstName, model.LastName);
if (result.Succeeded)
{
var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

return RedirectToAction("Index", new { Message = ManageMessageId.SetNamesSuccess });
}
AddErrors(result);
}

// If we got this far, something failed, redisplay form
return View(model);
}

我如何向 UserManager 添加函数或扩展 UserManager,以便我可以添加允许我更新用户的添加和更新自定义属性值的函数?

最佳答案

首先将自定义列添加到ApplicationUser

然后您可以像这样更新自定义列

[HttpPost]
public async Task<ActionResult> SetNames(SetUserFullNamesViewModel model)
{
ApplicationUser usermodel = UserManager.FindById(user.Id);
usermodel.Name = model.Name;
usermodel.Surname = model.Surname;


IdentityResult result = await UserManager.UpdateAsync(usermodel);
if (result.Succeeded)
{
return RedirectToAction("ListUser", "User");
}

return View();
}

关于c# - 扩展 UserManager 以允许管理新用户数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41931425/

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