ASPNET IdentityManager中的UserManager包含的功能如AddPasswordAsync
和SetPhoneNumberAsync
。擴展UserManager以允許管理新的用戶數據?
我添加了FirstName和LastName的屬性,當我註冊用戶時沒有設置值,所以我想添加屏幕來管理這些值(設置和更改它們)。
如何擴展UserManager以添加像AddNamesAsync
這樣的功能?
[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);
}
按照同樣的邏輯,我想一個函數添加到控制如下:當我們評價ManageController行動如下
這樣的功能成爲必要
[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