Partager via


SqlMembershipProvider.PasswordFormat Propriété

Définition

Obtient une valeur indiquant le format de stockage des mots de passe dans la base de données d’appartenance SQL Server.

public:
 virtual property System::Web::Security::MembershipPasswordFormat PasswordFormat { System::Web::Security::MembershipPasswordFormat get(); };
public override System.Web.Security.MembershipPasswordFormat PasswordFormat { get; }
member this.PasswordFormat : System.Web.Security.MembershipPasswordFormat
Public Overrides ReadOnly Property PasswordFormat As MembershipPasswordFormat

Valeur de propriété

L’une des valeurs MembershipPasswordFormat indiquant le format de stockage des mots de passe dans la base de données SQL Server.

Exemples

L’exemple de code suivant montre l’élément d’appartenance dans la system.web section du fichier Web.config pour une application ASP.NET. Il spécifie l’instance de SqlMembershipProvider l’application et définit son format de mot de passe sur Hashed.

<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">  
  <providers>  
    <add name="SqlProvider"  
      type="System.Web.Security.SqlMembershipProvider"  
      connectionStringName="SqlServices"  
      enablePasswordRetrieval="false"  
      enablePasswordReset="true"  
      requiresQuestionAndAnswer="true"  
      passwordFormat="Hashed"  
      applicationName="MyApplication" />  
  </providers>  
</membership>  

Remarques

Utilisez Hashed uniquement et ClearEncrypted ne sont pas sécurisés. Hashed les mots de passe sont hachés à l’aide d’un algorithme de hachage unidirectionnel et d’une valeur de sel générée de manière aléatoire lorsqu’ils sont stockés dans la base de données. Lorsqu'un mot de passe est validé, il est haché avec la valeur salt de la base de données à des fins de vérification. Les mots de passe hachés ne peuvent pas être récupérés. Encrypted les mots de passe ne sont pas considérés comme sécurisés, car une violation qui révèle le contenu de votre base de données peut également exposer la clé de chiffrement. Cela signifie que vos mots de passe chiffrés peuvent être déchiffrés et exposés.

La PasswordFormat valeur est spécifiée dans la section fournisseurs du fichier Web.config pour l’application ASP.NET.

Encrypted et Hashed les mots de passe sont chiffrés ou hachés par défaut en fonction des informations fournies dans l’élément machineKey dans votre configuration. Notez que si vous spécifiez une valeur de 3DES pour l’attribut validation , ou si aucune valeur n’est spécifiée, les mots de passe hachés seront hachés à l’aide de l’algorithme SHA1 .

Un algorithme de hachage personnalisé peut être défini à l’aide de l’attribut hashAlgorithmType de l’élément de configuration élément d’appartenance (ASP.NET Settings Schema). Si vous choisissez le chiffrement, le chiffrement de mot de passe par défaut utilise AES. Vous pouvez modifier l’algorithme de chiffrement en définissant l’attribut decryption de l’élément de configuration machineKey . Si vous chiffrez des mots de passe, vous devez fournir une valeur explicite pour l’attribut dans l’élément decryptionKeymachineKey . La valeur par défaut de pour l’attribut n’est pas prise en charge lors de AutoGenerate l’utilisation decryptionKey de mots de passe chiffrés avec ASP.NET appartenance.

En raison de problèmes de collision avec SHA1, Microsoft recommande un modèle de sécurité basé sur SHA256 ou supérieur.

S’applique à

Voir aussi