Condividi tramite


SqlMembershipProvider.PasswordFormat Proprietà

Definizione

Ottiene un valore che indica il formato di archiviazione delle password nel database di appartenenze di 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 di MembershipPasswordFormat, che indica il formato di archiviazione delle password nel database di 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 SqlMembershipProvider e imposta il formato della 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 hashate usando un algoritmo hash unidirezionale e un valore salt generato in modo casuale quando archiviato nel database. Quando una password viene convalidata, viene generato un hash con il valore salt nel database ai fini di verifica. Le password con hash non possono essere recuperate. 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 PasswordFormat valore viene specificato nella sezione provider del file di Web.config per l'applicazione ASP.NET.

Encrypted e Hashed le password vengono crittografate o hashate 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 o se non viene specificato alcun valore, le password hash verranno hashing usando l'algoritmo validationSHA1 .

È possibile definire un algoritmo hash personalizzato usando l'attributo dell'elemento di configurazione dell'elemento di appartenenza (ASP.NET Schema impostazioni).hashAlgorithmType Se si sceglie la crittografia, la crittografia password predefinita usa AES. È possibile modificare l'algoritmo di crittografia impostando l'attributo dell'elemento decryption di configurazione machineKey . Se si crittografano le password, è necessario specificare un valore esplicito per l'attributo nell'elemento decryptionKeymachineKey . 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 collisione con SHA1, Microsoft consiglia un modello di sicurezza basato su SHA256 o superiore.

Si applica a

Vedi anche