SqlMembershipProvider.PasswordFormat Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 validation
SHA1 .
È 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 decryptionKey
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.