UserManager в ASPNET Identity содержит такие функции, как AddPasswordAsync
и SetPhoneNumberAsync
.Расширение UserManager, позволяющее управлять новыми пользовательскими данными?
Я добавил свойства для значений 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);
}
По той же логике, я хотел бы добавить функцию контроллера следующим образом:
[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, чтобы я мог добавить функцию, которая позволит мне обновлять и обновлять пользовательские значения свойств пользователя?
UserManager призван быть унаследованы. Создайте свой класс, наследуйте UserManager, добавьте все необходимые функции. – trailmax