Recientemente, estuve estudiando el nuevo control de inicio de sesión en asp.net 2.0 y descubrí que los requisitos de seguridad de contraseña predeterminados del sistema son relativamente altos, es decir, "la longitud mínima de la contraseña es 7, que debe contener los siguientes caracteres no alfanuméricos: 1. ", para Wang Zhan común, no es necesario (incluso windows2003sever no requiere una contraseña tan compleja de forma predeterminada). El método de modificación proporcionado por algunos materiales de referencia es modificarlo en machine.config. Pero a menos que tenga derechos administrativos sobre el host, no podrá modificarlo. Por lo tanto, se recomienda modificarlo en el archivo web.config.
El método consiste en agregar subetiquetas al nodo <system.web> de web.config:
<membresía>
<proveedores>
<eliminar nombre="AspNetSqlMembershipProvider"/>
<añadir nombre="AspNetSqlMembershipProvider"
type=" System.Web.Security.SqlMembershipProvider, System.Web, Versión=2.0.0.0, Cultura=neutral, PublicKeyToken=b03f5f7f11d50a3a"
ConnectionStringName="LocalSqlServer"
enablePasswordRetrieval="falso"
enablePasswordReset="verdadero"
requiereQuestionAndAnswer="verdadero"
nombredeaplicación="/"
requiereUniqueEmail="falso"
formato de contraseña = "hash"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
contraseñaAttemptWindow="10"
contraseñaFuerzaRegularExpresión="" />
</proveedores>
</membresía>
Expliquemos los atributos clave:
conexión de base de datos ConnectionStringName. Esto debe configurarse en web.config
enablePasswordRetrieval Obtiene un valor que indica si el proveedor de membresía actual está configurado para permitir a los usuarios recuperar sus contraseñas.
enablePasswordReset Obtiene un valor que indica si el proveedor de membresía actual está configurado para permitir a los usuarios restablecer sus contraseñas.
requireQuestionAndAnswer Obtiene un valor que indica si el proveedor de membresía predeterminado requiere que los usuarios respondan una pregunta sobre contraseña para restablecerla y recuperarla.
applicationName obtiene o establece el nombre de la aplicación.
requireUniqueEmail Indica si el usuario debe proporcionar un valor de dirección de correo electrónico único al crear el usuario.
contraseñaFormat indica el formato en el que se almacenan las contraseñas en el almacén de datos de membresía. Instrucciones detalladas a continuación
maxInvalidPasswordAttempts Obtiene el número de contraseñas no válidas o intentos de respuesta de contraseñas no válidas permitidos antes de que se bloquee la membresía del usuario.
minRequiredPasswordLength Obtiene la longitud mínima requerida para una contraseña.
minRequiredNonalphanumericCharacters Obtiene el número mínimo de caracteres especiales que deben incluirse en una contraseña válida.
contraseñaAttemptWindow Obtiene el número máximo de contraseñas no válidas o intentos de respuesta de contraseñas no válidas permitidos antes de que se bloquee el acceso del usuario de membresía, en minutos.
La propiedad de descripción detallada de PasswordFormat indica el formato en el que se almacenan las contraseñas. Las contraseñas se pueden almacenar en formatos de contraseña clara, cifrada y hash. Las contraseñas claras se almacenan en texto sin cifrar, lo que mejora el rendimiento de almacenamiento y recuperación de contraseñas, pero son menos seguras y pueden leerse fácilmente cuando la seguridad de la fuente de datos se ve comprometida. Las contraseñas cifradas se cifran cuando se almacenan y se pueden descifrar al comparar o recuperar contraseñas. Estas contraseñas requieren un procesamiento adicional durante el almacenamiento y la recuperación, pero son más seguras y no pueden recuperarse fácilmente cuando la seguridad de la fuente de datos se ve comprometida. Las contraseñas hash se procesan mediante un algoritmo hash unidireccional y un valor salt generado aleatoriamente cuando se almacenan en la base de datos. Cuando se verifica una contraseña, la contraseña se codifica con el valor de sal en la base de datos para su verificación. No se puede recuperar la contraseña hash.