Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Issue with username validation message in asp.net identity

I am using new membership system asp.net identity in my project. I want to use Email address as an Username and yes i have looked these questions already:

Configure Microsoft.AspNet.Identity to allow email address as username

ASP.NET identity use email instead of user name

and i know how to use email as a Username.But i have another issue, the Validation error message:

Name [email protected] is already taken.

this message comes when user try to register with existing email address.So instead of this error message i want to give error message some like:

User with the given email address already exist.

So how can i do this in Asp.Net identity ??

like image 551
user1740381 Avatar asked Dec 08 '13 10:12

user1740381


2 Answers

Its just replacing the message. Search for the "Name {0} is already taken." and replace it with your message "User with the given email address already exists".

You can do it in AddError method. This is an example, you shall create application specific working code.

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);
    }
}
like image 130
jd4u Avatar answered Oct 23 '22 15:10

jd4u


Another option would be to plug in your own UserValidator that only does the user name/email check, if it doesn't fail, it delegates to the default UserValidator, otherwise it returns an IdentityResult with the error message you want.

like image 36
Hao Kung Avatar answered Oct 23 '22 14:10

Hao Kung