.NET Framework Class Library MembershipPasswordFormat Enumeration Describes the encryption format for storing passwords for membership users.
Namespace:
System.Web.Security
Assembly:
System.Web.ApplicationServices (in System.Web.ApplicationServices.dll)

Syntax
Public Enumeration MembershipPasswordFormat
public enum MembershipPasswordFormat
public enum class MembershipPasswordFormat
type MembershipPasswordFormat

Members
| Member name | Description |
|---|
| Clear | Passwords are not encrypted. | | Hashed | Passwords are encrypted one-way using the SHA1 hashing algorithm. You can specify a hashing algorithm different than the SHA1 algorithm using the hashAlgorithmType attribute. | | Encrypted | Passwords are encrypted using the encryption settings determined by the machineKey Element (ASP.NET Settings Schema) element configuration. |

Remarks
The SqlMembershipProvider class supports different password storage formats enabling you to increase the security of your membership user logins. Clear passwords are stored in plain text, which improves the performance of password storage and retrieval but is less secure, as passwords are easily read if your data source is compromised. Encrypted passwords are encrypted when stored and can be decrypted for password comparison or password retrieval. This requires additional processing for password storage and retrieval, but is more secure as passwords are not easily determined if the data source is compromised. Hashed passwords are encrypted using a one-way salted hash when stored in the database. When a password is validated, it is combined with a salt value and then hashed. The result is compared with the value in the database for verification. Hashed passwords cannot be retrieved.

Examples
The following example shows the membership element in the system.web section of the Web.config file for an ASP.NET application. It specifies the application's SqlMembershipProvider instance and sets its password format to Hashed.
<membership defaultProvider="SqlProvider"
userIsOnlineTimeWindow="20" hashAlgorithmType="SHA1">
<providers>
<add name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlServices"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
passwordFormat="Hashed"
applicationName="MyApplication" />
</providers>
</membership>

Version Information
.NET FrameworkSupported in: 4, 3.5, 3.0, 2.0 .NET Framework Client ProfileSupported in: 4

Platforms
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role not supported), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

See Also
|
Biblioteca de clases de .NET Framework MembershipPasswordFormat (Enumeración) Describe el formato de cifrado empleado para almacenar contraseñas de usuarios de pertenencia.
Espacio de nombres:
System.Web.Security
Ensamblado:
System.Web.ApplicationServices (en System.Web.ApplicationServices.dll)

Sintaxis
Public Enumeration MembershipPasswordFormat
public enum MembershipPasswordFormat
public enum class MembershipPasswordFormat
type MembershipPasswordFormat

Miembros
| Nombre de miembro | Descripción |
|---|
| Clear | No se cifran contraseñas. | | Hashed | Las contraseñas se cifran mediante el algoritmo hash unidireccional SHA1. Para especificar un algoritmo hash distinto de SHA1, puede utilizarse el atributo hashAlgorithmType. | | Encrypted | Las contraseñas se cifran utilizando las especificaciones de cifrado determinadas por la configuración del elemento Elemento machineKey (Esquema de configuración de ASP.NET). |

Comentarios
La clase SqlMembershipProvider admite distintos formatos de almacenamiento de contraseña que le permiten aumentar la seguridad de los inicios de sesión de los usuarios de pertenencia. Las contraseñas de tipo Clear se almacenan en texto sin formato, lo que mejora el rendimiento en materia de almacenamiento y recuperación de contraseñas; sin embargo, es menos seguro ya que las contraseñas se leen con facilidad cuando se ve comprometida la seguridad del origen de datos. Las contraseñas Encrypted se cifran cuando se almacenan y se pueden descifrar para su comparación o recuperación. Esto requiere un procesamiento adicional para el almacenamiento y la recuperación de contraseñas, pero es más seguro ya que las contraseñas no pueden determinarse con facilidad si se ve comprometida la seguridad del origen de datos. Las contraseñas Hashed se cifran utilizando un algoritmo hash con valor salt unidireccional cuando se almacenan en la base de datos. Cuando se valida una contraseña, se la combina con un valor salt y, a continuación, se aplica un algoritmo hash. El resultado obtenido se comprueba mediante comparación con el valor de la base de datos. Las contraseñas fragmentadas no se pueden recuperar.

Ejemplos
En el ejemplo siguiente se muestra el elemento membership de la sección system.web del archivo Web.config de una aplicación ASP.NET. A continuación, se especifica la instancia SqlMembershipProvider de la aplicación y se establece el formato de contraseña en Hashed.
<membership defaultProvider="SqlProvider"
userIsOnlineTimeWindow="20" hashAlgorithmType="SHA1">
<providers>
<add name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlServices"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
passwordFormat="Hashed"
applicationName="MyApplication" />
</providers>
</membership>

Información de versión
.NET FrameworkCompatible con: 4, 3.5, 3.0, 2.0 .NET Framework Client ProfileCompatible con: 4

Plataformas
Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2
.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Vea también
|