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 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.