Problème avec un message de validation du nom d’utilisateur dans l’identité asp.net

J’utilise la nouvelle identité du système d’adhésion asp.net dans mon projet. Je souhaite utiliser l’adresse e-mail comme nom d’utilisateur et oui, j’ai déjà examiné ces questions:

Configurer Microsoft.AspNet.Identity pour autoriser l’adresse électronique en tant que nom d’utilisateur

L’identité ASP.NET utilise le courrier électronique au lieu du nom d’utilisateur

et je sais comment utiliser l’e-mail en tant que nom d’utilisateur. Mais j’ai un autre problème, le message d’erreur Validation:

Name [email protected] is already taken.

Ce message arrive lorsque l’utilisateur essaie de s’enregistrer avec une adresse email existante. Alors, au lieu de ce message d’erreur, je veux donner un message d’erreur comme celui-ci:

User with the given email address already exist.

Alors, comment puis-je faire cela dans l’identité Asp.Net?

    C’est juste remplacer le message. La recherche du “Nom {0} est déjà prise.” et remplacez-le par votre message “L’utilisateur avec l’adresse email donnée existe déjà”.

    Vous pouvez le faire dans la méthode AddError. Ceci est un exemple, vous devez créer un code de travail spécifique à l’application.

     private void AddErrors(IdentityResult result) { foreach (var error in result.Errors) { if (error.EndsWith("is already taken.")) ModelState.AddModelError("", "User with the given email address already exists"); else ModelState.AddModelError("", error); } } 

    Une autre option serait de connecter votre propre UserValidator qui ne vérifie que le nom d’utilisateur / email. S’il échoue, il délègue à UserValidator par défaut, sinon il renvoie un IdentityResult avec le message d’erreur souhaité.