Last active
February 28, 2024 13:07
-
-
Save gianlucacini/411fa51d1cc67feb3c9f4f6c6ad3d7e5 to your computer and use it in GitHub Desktop.
Override IdentityErrorDescriber to translate AspNetCore.Identity error messages
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Create a class that inherits IdentityErrorDescriber | |
using Microsoft.AspNetCore.Identity; | |
public class ItalianIdentityErrorDescriber : IdentityErrorDescriber | |
{ | |
public override IdentityError PasswordRequiresUniqueChars(int uniqueChars) => new IdentityError { Code = nameof(PasswordRequiresUniqueChars), Description = $"La password deve essere contenere almeno {uniqueChars} caratteri univoci." }; | |
public override IdentityError RecoveryCodeRedemptionFailed() => new IdentityError { Code = nameof(RecoveryCodeRedemptionFailed), Description = $"Il codice di recupero non è stato utilizzato correttamente." }; | |
public override IdentityError UserNotInRole(string role) => new IdentityError() { Code = nameof(UserNotInRole), Description = $"l'utente non fa parte del ruolo {role}." }; | |
public override IdentityError DefaultError() => new IdentityError { Code = nameof(DefaultError), Description = $"Si è verificato un errore sconosciuto." }; | |
public override IdentityError ConcurrencyFailure() => new IdentityError { Code = nameof(ConcurrencyFailure), Description = "Fallimento della concorrenza ottimistica, l'oggetto è stato modificato." }; | |
public override IdentityError PasswordMismatch() => new IdentityError { Code = nameof(PasswordMismatch), Description = "Password non corretta." }; | |
public override IdentityError InvalidToken() => new IdentityError { Code = nameof(InvalidToken), Description = "Token non valido" }; | |
public override IdentityError LoginAlreadyAssociated() => new IdentityError { Code = nameof(LoginAlreadyAssociated), Description = "Esiste già un utente con questo login." }; | |
public override IdentityError InvalidEmail(string? email) => new IdentityError { Code = nameof(InvalidEmail), Description = $"Email '{email}' non è valida." }; | |
public override IdentityError InvalidRoleName(string? role) => new IdentityError { Code = nameof(InvalidRoleName), Description = $"Il Ruolo '{role}' non è valido." }; | |
public override IdentityError InvalidUserName(string? userName) => new IdentityError { Code = nameof(InvalidUserName), Description = $"Il nome utente '{userName}' non è valido, utilizzare i caratteri 'a-z 'A-Z'." }; | |
public override IdentityError DuplicateUserName(string userName) => new IdentityError { Code = nameof(DuplicateUserName), Description = $"Il nome utente '{userName}' è già stato preso." }; | |
public override IdentityError DuplicateEmail(string email) => new IdentityError { Code = nameof(DuplicateEmail), Description = $"l'email '{email}' è già stata presa." }; | |
public override IdentityError DuplicateRoleName(string role) => new IdentityError { Code = nameof(DuplicateRoleName), Description = $"il ruolo '{role}' è già stato preso." }; | |
public override IdentityError UserAlreadyHasPassword() => new IdentityError { Code = nameof(UserAlreadyHasPassword), Description = "L'utente ha già impostato una password." }; | |
public override IdentityError UserLockoutNotEnabled() => new IdentityError { Code = nameof(UserLockoutNotEnabled), Description = "Il blocco non è abilitato per questo utente." }; | |
public override IdentityError UserAlreadyInRole(string role) => new IdentityError { Code = nameof(UserAlreadyInRole), Description = $"L'utente è già nel ruolo '{role}'." }; | |
public override IdentityError PasswordTooShort(int length) => new IdentityError { Code = nameof(PasswordTooShort), Description = $"Le password devono avere almeno {length} caratteri." }; | |
public override IdentityError PasswordRequiresNonAlphanumeric() => new IdentityError { Code = nameof(PasswordRequiresNonAlphanumeric), Description = "Le password devono contenere almeno un carattere non alfanumerico." }; | |
public override IdentityError PasswordRequiresDigit() => new IdentityError { Code = nameof(PasswordRequiresDigit), Description = "Le password devono contenere almeno una cifra ('0'-'9')." }; | |
public override IdentityError PasswordRequiresLower() => new IdentityError { Code = nameof(PasswordRequiresLower), Description = "Le password devono contenere almeno una lettera minuscola ('a'-'z')." }; | |
public override IdentityError PasswordRequiresUpper() => new IdentityError { Code = nameof(PasswordRequiresUpper), Description = "Le password devono contenere almeno una lettera maiuscola ('A'-'Z')." }; | |
} | |
//then in your Program.cs | |
builder.Services | |
.AddIdentity<ApplicationUser, IdentityRole>().AddErrorDescriber<ItalianIdentityErrorDescriber>() | |
.AddEntityFrameworkStores<ApplicationDbContext>() | |
.AddDefaultTokenProviders(); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment