Freigeben über


SqlMembershipProvider.PasswordFormat Eigenschaft

Definition

Ruft einen Wert ab, der das Format zum Speichern von Kennwörtern in der SQL Server-Mitgliedschaftsdatenbank angibt.

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

Eigenschaftswert

Einer der MembershipPasswordFormat-Werte, der das Format zum Speichern von Kennwörtern in der SQL Server-Datenbank angibt.

Beispiele

Das folgende Codebeispiel zeigt das Membership-Element im system.web Abschnitt der Web.config-Datei für eine ASP.NET-Anwendung. Sie gibt die Instanz der SqlMembershipProvider Anwendung an und legt das Kennwortformat auf fest 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>  

Hinweise

Verwenden Sie Hashed nur, Clear und Encrypted sind nicht sicher. Hashed Kennwörter werden mithilfe eines unidirektionalen Hashalgorithmus und eines zufällig generierten Saltwerts gehasht, wenn sie in der Datenbank gespeichert werden. Wenn ein Kennwort überprüft wird, wird es mit dem Saltwert in der Datenbank für die Verifizierung verschlüsselt. Verschlüsselte Kennwörter können nicht abgerufen werden. Encrypted Kennwörter gelten als nicht sicher, da eine Sicherheitsverletzung, die Den Datenbankinhalt offenlegt, auch den Verschlüsselungsschlüssel verfügbar machen kann. Dies bedeutet, dass Ihre verschlüsselten Kennwörter entschlüsselt und verfügbar gemacht werden können.

Der PasswordFormat Wert wird im Abschnitt providers der Web.config-Datei für die ASP.NET-Anwendung angegeben.

Encrypted Kennwörter und Hashed werden standardmäßig verschlüsselt oder gehasht, basierend auf den Informationen, die im machineKey-Element in Ihrer Konfiguration angegeben werden. Wenn Sie den Wert für 3DES das validation Attribut angeben oder kein Wert angegeben ist, werden Hashkennwörter mithilfe des SHA1 Algorithmus gehasht.

Ein benutzerdefinierter Hashalgorithmus kann mithilfe des hashAlgorithmType Attributs des Konfigurationselements membership Element (ASP.NET Settings Schema) definiert werden. Wenn Sie verschlüsselung auswählen, verwendet die Standardkennwortverschlüsselung AES. Sie können den Verschlüsselungsalgorithmus ändern, indem Sie das decryption Attribut des konfigurationselements machineKey festlegen. Wenn Sie Kennwörter verschlüsseln, müssen Sie einen expliziten Wert für das decryptionKey Attribut im machineKey-Element angeben. Der Standardwert für AutoGenerate das decryptionKey Attribut wird nicht unterstützt, wenn verschlüsselte Kennwörter mit ASP.NET Mitgliedschaft verwendet werden.

Aufgrund von Problemen durch Konflikte mit SHA1 wird von Microsoft ein Sicherheitsmodell empfohlen, das mindestens auf SHA256 basiert.

Gilt für:

Weitere Informationen