Я пытаюсь справиться с новой системой членства, представленной в ASP.NET MVC 5, и я столкнулся с небольшой проблемой, и я уверен, что вы сможете мне помочь.MVC5 Пользовательские свойства ApplicationUser
Я иду на основе от this tutorial и введены пользовательских свойств ApplicationUser, таких как имя, фамилия, DOB и т.д.
Однако, вместо того, чтобы создать пользователь, я пытаюсь обновить вошедшие в одном. Я рассматриваю метод контроллера, который в настоящее время используется для смены пароля.
public async Task<ActionResult> Manage(ManageUserViewModel model)
{
string userId = User.Identity.GetUserId();
bool hasLocalLogin = await IdentityManager.Logins.HasLocalLoginAsync(userId);
ViewBag.HasLocalPassword = hasLocalLogin;
ViewBag.ReturnUrl = Url.Action("Manage");
if (hasLocalLogin)
{
if (ModelState.IsValid)
{
IdentityResult result = await IdentityManager.Passwords.ChangePasswordAsync(User.Identity.GetUserName(), model.OldPassword, model.NewPassword);
if (result.Success)
{
return RedirectToAction("Manage", new { Message = "Your password has been changed." });
}
else
{
AddErrors(result);
}
}
}
else
{
// User does not have a local password so remove any validation errors caused by a missing OldPassword field
ModelState state = ModelState["OldPassword"];
if (state != null)
{
state.Errors.Clear();
}
if (ModelState.IsValid)
{
// Create the local login info and link it to the user
IdentityResult result = await IdentityManager.Logins.AddLocalLoginAsync(userId, User.Identity.GetUserName(), model.NewPassword);
if (result.Success)
{
return RedirectToAction("Manage", new { Message = "Your password has been set." });
}
else
{
AddErrors(result);
}
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
Как точно я хотел бы продолжить обновление фамилии ApplicationUser's? Мне нужно вызвать DbContext или?
Надеюсь, мой вопрос ясен.
+1 Вы можете использовать CancellationToken.None from System.Threading, а не создавать BTW. – Stimul8d
Удивительные ребята! благодаря – teh0wner