SqlMembershipProvider.PasswordFormat Egenskap

Definition

Hämtar ett värde som anger formatet för att lagra lösenord i SQL Server medlemskapsdatabasen.

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

Egenskapsvärde

Ett av MembershipPasswordFormat värden som anger formatet för lagring av lösenord i SQL Server-databasen.

Exempel

I följande kodexempel visas elementet membership i avsnittet system.web i Web.config-filen för ett ASP.NET program. Den anger programmets instans och anger dess lösenordsformat SqlMembershipProvider till 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>

Kommentarer

Använd Hashed endast Clear och Encrypted är inte säkra. Hashed lösenord hashas med hjälp av en enkelriktad hash-algoritm och ett slumpmässigt genererat saltvärde när de lagras i databasen. När ett lösenord verifieras hashas det med saltvärdet i databasen för verifiering. Hashade lösenord kan inte hämtas. Encrypted lösenord anses inte vara säkra, eftersom ett intrång som avslöjar ditt databasinnehåll också kan exponera krypteringsnyckeln. Det innebär att dina krypterade lösenord kan dekrypteras och exponeras.

Värdet PasswordFormat anges i avsnittet providers i Web.config-filen för ASP.NET-programmet.

Encrypted och Hashed lösenord krypteras eller hashas som standard baserat på information som anges i machineKey-elementet i konfigurationen. Observera att om du anger ett värde för 3DES attributet, eller om inget värde anges, hashas hashade lösenord med hjälp av validation algoritmenSHA1.

En anpassad hashalgoritm kan definieras med attributet hashAlgorithmType för membership Element (ASP.NET Settings Schema) konfigurationselement. Om du väljer kryptering använder standardkryptering av lösenord AES. Du kan ändra krypteringsalgoritmen genom att ange decryption attributet för konfigurationselementet machineKey . Om du krypterar lösenord måste du ange ett explicit värde för decryptionKey attributet i machineKey-elementet . Standardvärdet för AutoGenerate för attributet decryptionKey stöds inte när krypterade lösenord med ASP.NET Medlemskap används.

På grund av kollisionsproblem med SHA1 rekommenderar Microsoft en säkerhetsmodell baserad på SHA256 eller bättre.

Gäller för

Se även