Ho un progetto in cui è necessario migrare molti utenti che hanno la loro password in testo normale in un nuovo database dove inseriremo la password.Conversione di password normale in EF Asp.Net Identity PasswordHash
Il nuovo sistema utilizza Entity Framework e deve essere autenticato con il framework Asp.Net Identity.
Ho scoperto che posso generare in C# una password hash corretta che Entity Framework può leggere senza problemi.
public static string HashPassword(string password)
{
byte[] salt;
byte[] buffer2;
using (var bytes = new Rfc2898DeriveBytes(password, 0x10, 0x3e8))
{
salt = bytes.Salt;
buffer2 = bytes.GetBytes(0x20);
}
byte[] dst = new byte[0x31];
Buffer.BlockCopy(salt, 0, dst, 1, 0x10);
Buffer.BlockCopy(buffer2, 0, dst, 0x11, 0x20);
return Convert.ToBase64String(dst);
}
C'è qualcosa di simile in SQL che ho potuto usare all'interno di istruzione INSERT formare una SELECT per l'altra tabella?
non si desidera utilizzare [integrazione CLR SQL Server] (https://msdn.microsoft.com/en-us/library/w2kae45k (v = vs90) .aspx)? – jjj
@jjj Interessante, lasciatemi esplorare questo percorso, non ho mai usato l'integrazione CLR, ma questo potrebbe fare il lavoro –
@jjj Ho fatto un test e ha funzionato. È piuttosto lento da usare, ma credo che ne valga la pena. Per darti un'idea, passa da 7 secondi a 18 minuti :) –