Overview
Default Identity templates often use email as the username. Many apps need distinct usernames for display and login.
Map UserName to the login field and keep Email optional or required separately in registration.
Implementation
In LoginViewModel, rename Email to UserName. Update SignInManager.PasswordSignInAsync(model.UserName, ...). Ensure registration sets unique UserName with RequireUniqueEmail as needed.
Add FluentValidation for allowed username characters.
When implementing guidance from Login with User Name instead of Email in ASP.NET MVC Identity, start in a controlled environment that mirrors production versions of operating systems, runtimes, and network policies. Capture a baseline before changes: export configs, snapshot VMs, or tag releases in source control so rollback stays straightforward if behavior regresses.
Document prerequisites, expected outcomes, and verification steps in a short runbook. Automated checks—smoke tests, health endpoints, or query validations—catch regressions early when platforms receive patches. Security belongs in every workflow: apply least privilege, rotate secrets, and review audit logs after deployment.
If results differ across machines, compare environment variables, permission models, time zones, and regional settings. Intermittent issues often trace to caching layers, stale DNS, or duplicated services bound to the same port.
Example
var result = await _signInManager.PasswordSignInAsync(
model.UserName, model.Password, model.RememberMe, lockoutOnFailure: true);
if (result.Succeeded) return RedirectToLocal(returnUrl);
Tips
- Usernames are case-insensitive by default—document policy.
- Still validate email for password reset flows.
- Consider normalizing Unicode usernames.
- Enable 2FA for privileged accounts.
- Re-verify after reboots, certificate renewals, or failover exercises.
- Align monitoring and alerts with the failure modes described in this guide.
- Keep vendor documentation links handy for breaking changes between versions.
- Pair automation with a manual spot check during initial production rollout.