Обновление пользователей Azure AD B2C при входе в систему приводит к ошибке - PullRequest
0 голосов
/ 17 июня 2019

Когда я пытаюсь обновить список SignInNames, я получаю сообщение об ошибке: Resource <EMAIL ADDRESS> does not exist or one of its queried reference-property objects are not present.

var currentUser = await GetUserByUserNameAsync(userId); // this gets the user
var signinNames = currentUser.SignInNames.ToList();
signinNames.Add(new SignInName
{
   Type = "emailAddress",
   Value = newEmailaddress
});
var data = new B2CChangeEmailAddressData()
{
    SignInNames = signinNames
};
var response = await _graphApi.SendAsync(new HttpMethod("PATCH"), $"users/{userId}", null, data);

И затем возвращается ошибка.Я использую сопоставимый код для обновления пароля, который отлично работает.Я что-то пропускаю?

1 Ответ

0 голосов
/ 22 июня 2019

Итак, что я сделал:

  • Я получил пользователя по его логину (адресу электронной почты)
  • Я попытался отредактировать пользователя с помощью имени пользователя

Первое возможно, а второе нет. Мне пришлось обновить пользователя с помощью ObjectId. Так что код должен быть:

var currentUser = await GetUserByUserNameAsync(userId);
var path = $"users/{currentUser.ObjectId}";
var signinNames = new List<SignInName>();
signinNames.Add(new SignInName
{
     Type = "emailAddress",
     Value = newEmailaddress
});
var data = new B2CChangeEmailAddressData()
{
     SignInNames = signinNames
};

var response = await _graphApi.SendAsync(new HttpMethod("PATCH"), path, null, data);
...