Это проект, созданный с использованием шаблона MVC ASP.NET Core Web Application.Персональный выбран для аутентификации.
Я расширяю IDentityUser, чтобы добавить свойства, такие как название, учреждение, имя, фамилия, имя.Я могу зарегистрировать нового пользователя с этими расширенными свойствами.Однако я также хочу, чтобы пользователь мог обновлять эти свойства после входа в систему.
Исходное свойство IDentityUser, как и PhoneNumber, обновляется с помощью приведенного ниже кода скаффолда.
var phoneNumber = user.PhoneNumber;
if (model.PhoneNumber != phoneNumber)
{
var setPhoneResult = await _userManager.SetPhoneNumberAsync(user, model.PhoneNumber);
if (!setPhoneResult.Succeeded)
{
throw new ApplicationException($"Unexpected error occurred setting phone number for user with ID '{user.Id}'.");
}
}
Кажется, мне также нужнорасширить UserManager для создания таких функций, как
setTitleAsync(TUser user, string title);
setInstitutionAsync(TUser user, string instituion);
setFirstNameAsync(TUser user, string firstName);
setLastNameAsync(TUser user, string lastName);
Я проверил исходный код NET Core 1.0, реализация SetPhoneNumberAsync выглядит следующим образом:
ThrowIfDisposed();
var store = GetPhoneNumberStore();
if (user == null)
{
throw new ArgumentNullException(nameof(user));
}
await store.SetPhoneNumberAsync(user, phoneNumber, CancellationToken);
await store.SetPhoneNumberConfirmedAsync(user, false, CancellationToken);
await UpdateSecurityStampInternal(user);
return await UpdateUserAsync(user);
Я думаю, что это слишком сложно для такихобщий запрос.Кроме того, я также не знаю, для чего работает xxxStore.
У кого-нибудь есть опыт, чтобы справиться с этим?Большое спасибо.
Еще один способ обновить эти свойства - обновить их путем прямого доступа к БД.Но это не будет соответствовать существующему коду.