Password hashing stores a derived value instead of the plaintext password, so an application can retain user credentials without keeping the original password. Use a strong hashing algorithm and let an established identity system handle the security-sensitive details. section 29.5 section 23.2
ASP.NET Core Identity includes password hashing alongside user storage, password validation, account lockout, multifactor authentication, and password-reset support. This avoids manually building an authentication and membership system while leaving the login UI and some integrations to the application. section 23.1.2 section 23.2
Practical guidance:
- Store passwords only as hashes; do not retain plaintext passwords. section 29.5
- Prefer ASP.NET Core Identity or an external identity provider instead of writing password and membership handling manually. section 23.1.2 section 23.2
- Combine password hashing with password protection against weak or compromised passwords and with MFA where possible. section 29.5 section 23.2
Table 23.1 Which services are and aren’t handled by ASP.NET Core IdentityCH23.fm (view table figure)
Use the responsibility table to distinguish password hashing and validation, which Identity manages, from login UI and external messaging, which the application may need to provide. section 23.2




