with users password net mvc forgot aspnet asp and asp.net authentication passwords

asp.net - users - forgot password asp net



Un sensible PasswordStrengthRegularExpression (2)

Aquí hay una expresión regular que permite todos los caracteres y requiere al menos un número y que requiere al menos 6 caracteres.

^.*(?=.{6,})(?=.*/d).*$

Si desea definir más o menos caracteres simplemente cambie (?=.{6,}) para reflejar el número de caracteres que desea como mínimo.

Estamos utilizando el proveedor de autenticación ASP.NET estándar (AspNetSqlMembershipProvider, como ocurre) y el requisito de fortaleza de contraseña defualt es un poco excesivo para nuestras necesidades.

Requerimos que nuestros usuarios ingresen al menos una contraseña alfanumérica (es decir, letras y al menos un número obligatorio, mayúsculas y minúsculas y caracteres no alfanuméricos si el usuario así lo desea).

¿Alguien puede sugerir qué configuración de PasswordStrengthRegularExpression lograría esto?

Además, ¿cómo podemos controlar el mensaje de error que se muestra al usuario si la contraseña que intenta utilizar falla la comprobación de expresión regular?

Nota

Se encontró que la propiedad minRequiredNonalphanumericCharacters debe establecerse en 0 ; de lo contrario, esta configuración anula cualquier expresión regular que se use.


Acabamos de implementar la siguiente expresión para validar una pwd de 8 a 16 caracteres y contener tres de los siguientes 4 elementos: mayúscula, minúscula, símbolo, número

(?=^[^/s]{8,16}$)((?=.*?/d)(?=.*?[A-Z])(?=.*?[a-z])|(?=.*?/d)(?=.*?[^/w/d/s])(?=.*?[a-z])|(?=.*?[^/w/d/s])(?=.*?[A-Z])(?=.*?[a-z])|(?=.*?/d)(?=.*?[A-Z])(?=.*?[^/w/d/s]))^.*

Una explicación de los componentes individuales:

  • (? = ^ [^ / s] {8,16} $) - contiene entre 8 y 16 caracteres que no son de espacios en blanco
  • (? =. *? / d) - contiene 1 numérico
  • (? =. *? [AZ]) - contiene 1 carácter en mayúscula
  • (? =. *? [az]) - contiene 1 carácter en minúscula
  • (? =. *? [^ / w / d / s]) - contiene 1 símbolo

observe después del segmento de longitud los paréntesis dobles y más adelante en la expresión verá varios | ''s. Esto permite la comparación de las 4 combinaciones posibles permitidas.

Después de escribir esto, me di cuenta de que esta pregunta se hizo hace más de un año. Dado que me encontré con esta pregunta en mi búsqueda, espero que alguien más también se beneficie de nuestra solución.