Проблема с сохранением пользовательских изменений в базе данных, например, смена имени пользователя. Я использую IdentityModel, который автоматически создается в новом веб-проекте VS2013 с использованием индивидуальной проверки подлинности. К сожалению, шаблон не позволяет изменять любую пользовательскую информацию, кроме изменения ролей. Я просматриваю через google, я не нашел много. Кто-нибудь реализует обновление с использованием базового идентификационного кода?
Это самая близкая вещь, которую я нашел:
Обновление пользовательских данных - Идентификация Asp.net
Мне не удалось включить шаблон по умолчанию. Я только начал использовать Identity на этой неделе, так что может быть, я не понимаю, что проблема.
var updatedUser = new ApplicationUser
{
Id = model.UserId,
UserName = model.UserName,
CustomerId = model.CustomerId,
Email = model.EmailAddress,
FirstName = model.FirstName,
LastName = model.LastName,
PhoneNumber = model.PhoneNumber,
};
...
var result = await UserManager.UpdateAsync(updatedUser);
Мой UserManager создается следующим образом:
return _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
В браузере появляется следующая ошибка:
Прикрепление объекта типа "ApplicationUser" не удалось, поскольку другой объект того же типа уже имеет такое же значение первичного ключа. Это может произойти при использовании метода "Прикрепить" или установки состояния объекта в "Без изменений" или "Модифицировано", если любые объекты на графике имеют конфликтующие значения ключей. Это может быть связано с тем, что некоторые объекты являются новыми и еще не получили значения ключей базы данных. В этом случае используйте метод "Добавить" или "Добавленное" состояние объекта для отслеживания графика, а затем установите состояние не новых объектов в "Без изменений" или "Модифицировано", если это необходимо
Спасибо