SqlMembershipProvider.PasswordFormat Proprietà

Definizione

Ottiene un valore che indica il formato per l'archiviazione delle password nel database di appartenenza 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

Valore della proprietà

Uno dei valori MembershipPasswordFormat, che indica il formato per l'archiviazione delle password nel database SQL Server.

Esempio

Nell'esempio di codice seguente viene illustrato l'elemento di appartenenza nella system.web sezione del file Web.config per un'applicazione ASP.NET. Specifica l'istanza dell'applicazione e imposta il formato della SqlMembershipProvider password su 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>

Commenti

Usare Hashed solo Clear e Encrypted non sono sicuri. Hashed le password vengono con hashing usando un algoritmo hash unidirezionale e un valore salt generato in modo casuale quando archiviato nel database. Quando viene convalidata una password, viene eseguito l'hashing con il valore salt nel database per la verifica. Impossibile recuperare le password con hash. Encrypted le password non sono considerate sicure, come violazione che rivela il contenuto del database può anche esporre la chiave di crittografia. Ciò significa che le password crittografate potrebbero essere decrittografate ed esposte.

Il valore PasswordFormat viene specificato nella sezione providers del file di Web.config per l'applicazione ASP.NET.

Encrypted e Hashed le password vengono crittografate o con hash per impostazione predefinita in base alle informazioni fornite nell'elemento machineKey nella configurazione. Si noti che se si specifica un valore di 3DES per l'attributo validation o se non viene specificato alcun valore, le password con hash verranno con hash utilizzando l'algoritmo SHA1 .

È possibile definire un algoritmo hash personalizzato usando l'attributo hashAlgorithmType dell'elemento di configurazione membership (schema impostazioni ASP.NET). Se si sceglie la crittografia, la crittografia della password predefinita usa AES. È possibile modificare l'algoritmo di crittografia impostando l'attributo decryption dell'elemento di configurazione machineKey . Se si esegue la crittografia delle password, è necessario fornire un valore esplicito per l'attributo decryptionKey nell'elemento machineKey . Il valore predefinito di AutoGenerate per l'attributo decryptionKey non è supportato quando si usano password crittografate con ASP.NET Appartenenza.

A causa di problemi di conflitto con SHA1, Microsoft consiglia un modello di sicurezza basato su SHA256 o superiore.

Si applica a

Vedi anche