9

Nelle mie applicazioni ASP.NET ho le seguenti impostazioni in DefaultMembershipProvider e SqlMembershipProvider nel web.config:Come impostare le regole della password per l'identità di ASP.NET?

enablePasswordRetrieval="true" 
passwordFormat="Clear" 
requiresQuestionAndAnswer="false" 

Essi sono tenuti per l'autenticazione Digest. Vorrei passare all'identità ASP.NET. Sto usando uno strumento automatico per aggiornare tutti i file web.config che gestisco.

Come si impostano queste impostazioni per ASP.NET Identity nel progetto generato da Visual Studio 2013?

+1

recupero password aumenta notevolmente la debolezza della domanda richiedendo due cifratura modo e poi l'inoltro delle credenziali in testo normale. Se possibile, implementare i token di reimpostazione della password tramite e-mail. – pwdst

+0

Sono abbastanza sicuro che ciò non è possibile con l'autenticazione Digest. –

+0

Ho trovato un articolo datato 2014 sulla politica di password personalizzata https://blogs.msdn.microsoft.com/webdev/2014/01/06/implementing-custom-password-policy-using-asp-net-identity/ – oneNiceFriend

risposta

18

È necessario fornire un'implementazione IPasswordHasher che può fornire una password chiara senza hashing. È possibile impostare UserManager.PasswordHasher per l'implementazione.

A partire da ora, non ci sono impostazioni configurabili web.config per Identity. È necessario fornire il mix appropriato di codice configurabile, principalmente in Startup.cs

Non è consigliabile memorizzare le password in formato chiaro.

public class ClearPassword : IPasswordHasher 
{ 
    public string HashPassword(string password) 
    { 
     return password; 
    } 

    public PasswordVerificationResult VerifyHashedPassword(string hashedPassword, string providedPassword) 
    { 
     if(hashedPassword.Equals(providedPassword)) 
      return PasswordVerificationResult.Success; 
     else return PasswordVerificationResult.Failed; 
    } 
} 
+0

Il fornito la password è di testo chiaro o hash (nel caso in cui abbiamo usato password con hash)? – idipous

+0

L'esempio è della password di testo non crittografato. È possibile implementare l'algoritmo di hashing nella funzione HashPassword (password stringa) e allo stesso modo verificarlo nella funzione VerifyHashedPassword. – jd4u

+1

Grazie a jd4u, ma non ho potuto ottenere, dove aggiungere questa classe e dove chiamarla? – oneNiceFriend

Problemi correlati