Как установить IdentityResult?
Я нахожусь в ситуации, когда мне нужно проверить новый (или обновить) адрес электронной почты пользователей, используя более сложные правила.
Я думал об использовании хранилища пользователей, которое входит в диспетчер пользователей, но где и как создается IdentityResult?
Я просто выбрасываю исключение и все? Или есть какой-то дополнительный механизм проверки?
3 ответа
IdentityResult
занимает IEnumerable<String>
в конструкторе:
public IdentityResult(IEnumerable<string> errors)
Это ошибки, которые будут переданы обратно в вызывающий код.
В качестве альтернативы вы можете вызвать этот метод:
var identityResult = IdentityResult.Failed("First error", "Second validation error");
Это будет идентично вызову конструктора со списком строк.
.NETCore изменил ситуацию. Итак, чтобы вернуть неудачный результат, в котором вы назначаете свои собственные ошибки, вам нужно будет создать полностью квалифицированный
IdentityError
экземпляр для каждой ошибки, которую вы хотите передать.
Скажем, например, у вас есть следующие ошибки, и вы хотите вернуть неудачный результат с этими ошибками:
var errors1 = "Your password is incorrect";
var errors2 = "Your email is not recognized";
Чтобы продолжить и вернуть неверный адрес для с этими ошибками, вы должны сделать следующее:
var result = IdentityResult.Failed(
new IdentityError[] {
new IdentityError{
Code = "0001",
Description = error1
},
new IdentityError{
Code = "0002",
Description = error2
}
}
);
В основном здесь происходит то, что новый
Failed
метод
IdentityResult
ожидает
params
в виде
IdentityError[]
. Очевидно, что если бы у вас было много ошибок, вы бы создали
IdentityError[]
переменную, а затем поместите все свои ошибки и затем передайте ее в свой
Failed
метод.
Сделай это так :
var errorMessage = new IdentityError
{
Description = "error message"
};
result =
IdentityResult.Failed(errorMessage);