Esta documentación está archivada y no tiene mantenimiento.

Credenciales de autenticación de formularios

Las credenciales de autenticación mediante formularios que se utilizan para validar usuarios en el inicio de sesión se pueden almacenar en un origen de datos externo o en el archivo de configuración de aplicaciones.

NoteNota

La suscripción de ASP.NET es el método preferido para almacenar y administrar las credenciales del usuario en aplicaciones con autenticación basada en formularios. Para obtener más información, vea Administrar usuarios mediante suscripciones.

Almacenar usuarios en el archivo de configuración de aplicaciones

Cuando se utiliza la autenticación mediante formularios, se pueden validar los usuarios a partir de los pares de usuario y contraseña en la sección de credenciales del archivo de configuración del sitio Web. Se puede utilizar el método Authenticate para comparar las credenciales recopiladas del usuario con la lista de pares de usuario y contraseña de la sección de credenciales para determinar si se debe conceder el acceso. En el ejemplo siguiente, los usuarios Kim y John pueden iniciar una sesión si proporcionan la contraseña correcta.

<credentials passwordFormat="SHA1" >
    <user name="Kim"
          password="07B7F3EE06F278DB966BE960E7CBBD103DF30CA6"/>
    <user name="John" 
          password="BA56E5E0366D003E98EA1C7F04ABF8FCB3753889"/>
</credentials>

Los pares de credenciales del ejemplo se cifran utilizando el formato hash de contraseñas SHA1 (Secure Hash Algorithm-1). El atributo PasswordFormat es necesario. Los valores para esta propiedad se muestran en la tabla siguiente.

Valor Descripción

Clear

Las contraseñas se almacenan en texto no cifrado. La contraseña del usuario se compara directamente con este valor, sin transformarlo.

MD5

Las contraseñas se almacenan utilizando una síntesis hash del mensaje (MD5). Para validar las credenciales, se obtiene la clave hash de la contraseña del usuario mediante el algoritmo MD5 y se compara con el valor almacenado. La contraseña en texto no cifrado no se almacena ni se compara nunca si se utiliza este valor. Con este algoritmo el rendimiento es mayor que con el algoritmo SHA1.

SHA1

Las contraseñas se almacenan utilizando una síntesis hash del algoritmo SHA1. Para validar las credenciales, se obtiene la clave hash de la contraseña del usuario mediante el algoritmo MD5 y se compara con el valor almacenado. La contraseña en texto no cifrado no se almacena nunca. Utilice este algoritmo para mejorar la seguridad mejorada relacionada con el algoritmo MD5.

.NET Framework incluye clases y métodos que facilitan la creación de valores hash mediante programación para su almacenamiento permanente. FormsAuthentication es una clase que puede resultar útil para la programación de esta tarea. Su método HashPasswordForStoringInConfigFile puede obtener una clave hash. Para que el control sea más preciso, también se pueden utilizar las clases System.Security.Cryptography.

Las contraseñas con valores hash almacenadas en un archivo de texto no se pueden utilizar para regenerar la contraseña original, pero son potencialmente vulnerables a un ataque de diccionario. En este tipo de ataque, el agresor, tras obtener acceso al archivo de contraseñas, intenta adivinar las contraseñas mediante software con el fin de generar de manera iterativa un valor hash para todas las palabras en un diccionario de gran tamaño y comparar los valores hash generados con los almacenados. Si almacena las contraseñas con valores hash en algún medio, debe notificar a los usuarios que elijan contraseñas que no sean palabras comunes y que contengan números y caracteres no alfanuméricos para evitar los ataques de diccionario. Además, puede facilitar la administración de las credenciales almacenándolas mediante la suscripción de ASP.NET. Para obtener más información, vea Administrar usuarios mediante suscripciones.

Vea también

Mostrar: