У меня есть вызов, который создаст нового пользователя, если он введет пароль при покупке продукта. Если они создают учетную запись, я должен обновить данные, чтобы они были отражены для этого пользователя. Но проблема, с которой я сталкиваюсь, заключается в том, что я не могу использовать этого пользователя в одном и том же вызове и не смог выяснить, как обновить Identity Framework, чтобы иметь возможность распознавать вновь созданного пользователя. Если обновить страницу и попробовать снова, то работает, но в первый раз выдает ошибку... потому что пользователя нет.
Он сохраняет данные в таблице AspNetUsers. Объект newUser имеет назначенного пользователя. Но я тоже не могу использовать этот объект. Я попытался вытащить объект newUser и назначить объект newUser, но затем он пытается создать нового пользователя с тем же идентификатором, и я получаю ошибки внешнего ключа. Я не уверен, как это сделать, чтобы я мог использовать вновь созданного пользователя в том же вызове.
public async Task<IActionResult> CheckoutStep2(CheckoutStep2ViewModel model)
if (model.Password != null && model.PasswordConfirm != null)
{
ApplicationUser newUser = new ApplicationUser { UserName = model.PaymentInformation.BillingEmail, Email = model.PaymentInformation.BillingEmail };
var result = await userManager.CreateAsync(newUser, model.Password);
if (result.Succeeded)
{
await signInManager.SignInAsync(newUser, isPersistent: false);
}
}
// THIS CALL NEVER RETRIEVES THE NEWLY CREATED USER
ApplicationUser user =
this.commonDataAccess.GetCurrentUser(User.Identity.Name);
// IRREVERENT DATA REMOVED
}
Получить текущего пользователя
public ApplicationUser GetCurrentUser(string userName)
{
return context.Users.FirstOrDefault(x => x.UserName == userName);
}
ApplicationUser
? - person Muqeet Khan   schedule 13.06.2017