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à

MembershipPasswordFormat

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 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 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ò esporre anche la chiave di crittografia. Ciò significa che le password crittografate potrebbero essere decrittografate ed esposte.

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

Encrypted Le password e Hashed 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 per 3DES l'attributo validation o se non viene specificato alcun valore, le password con hash verranno hashing usando l'algoritmo SHA1 .

È possibile definire un algoritmo hash personalizzato usando l'attributo dell'elemento hashAlgorithmType di configurazione elemento di appartenenza (ASP.NET Impostazioni Schema). 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 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 collisione con SHA1, Microsoft consiglia un modello di sicurezza basato su SHA256 o superiore.

Si applica a

Vedi anche