Как правильно определить тип IdentityError? - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь определить тип возвращаемого IdentityError. Свойство Code является string Я бы ожидал, что оно будет перечислением или, по крайней мере, для каждого кода есть строковая константа. Я не могу найти ничего из этого. Прямо сейчас я обнаруживаю дублирующую ошибку электронной почты, вот так:

if(identityResult.Errors.Any(x => x.Code == "DuplicateEmail"))

Есть ли способ избавиться от этого литерала?

1 Ответ

1 голос
/ 09 марта 2020

В Microsoft.Extensions.Identity.Core.dll существует класс IdentityErrorDescriber.

Вы можете использовать его следующим образом:

// using Microsoft.AspNetCore.Identity;

if (identityResult.Errors.Any(x => x.Code == nameof(IdentityErrorDescriber.DuplicateEmail)))

Обновление

ErrorDescriber также является частью UserManager, позволяя вам настроить сообщение об ошибке.

// model.Email is 'someone@somemail.com'.
var identityError = _userManager.ErrorDescriber.DuplicateEmail(model.Email);

if (identityResult.Errors.Any(x => x.Code == identityError.code))
{
    // Description: "Email 'someone@somemail.com' is already taken.
    var message = identityError.Description;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...