2017-06-01 2 views
0

Ich habe meine Passwörter in meinen ASP.NET-Webforms gehashed.String-Wert in Datenbank einfügen C#

Wie gebe ich dann das Hash-Passwort über einen String in die Datenbank ein?

SqlConnection dbCon = new SqlConnection(ConfigurationManager.ConnectionStrings["ConMotorstore"].ConnectionString); 

dbCon.Open(); 

SqlCommand cmd = new SqlCommand("INSERT INTO [user] VALUES (@firstName, @surname, @email, @username, @passwordHash)", dbCon); 

cmd.Parameters.AddWithValue("firstName", firstNameTxt.Text); 
cmd.Parameters.AddWithValue("surname", surnameTxt.Text); 
cmd.Parameters.AddWithValue("email", emailTxt.Text); 
cmd.Parameters.AddWithValue("username", usernameTxt.Text); 

string passwordHash = BCrypt.Net.BCrypt.HashPassword(passwordTxt.Text); 
cmd.Parameters.ToString("passwordHash"); 

cmd.ExecuteNonQuery(); 

Ich wusste, dass ich nicht .AddWithValue und dachte an .ToString die man verwenden gewesen kann nutzen könnten.

Ich bin neu in C#.

Danke.

+2

"Ich wusste, ich konnte nicht verwenden. AddWithValue" Warum hast du das gedacht? – Amy

+5

Als Randnotiz sollten Sie Ihre 'SqlConnection'- und' SqlCommand'-Anweisungen in 'using'-Blöcken einschließen. – Icemanind

+0

Wenn Sie Ihr Passwort nur an eine Zeichenkette ha- ben und diese Zeichenkette speichern wollen, können Sie einfach 'AddWithValue' verwenden. Was du da oben tust 'cmd.Parameters.ToString (" passwordHash ")' wird nicht viel erreichen, weil die 'ToString()' Methode nur eine (formatierte) Zeichenkette zurückgibt und auch keine interne Zuweisung durchführt Ich werde versuchen, "passwordHash" als Formatzeichenfolge zu verwenden, was nicht viel Sinn macht. – Adwaenyth

Antwort

3

Funktioniert das?

SqlConnection dbCon = new SqlConnection(ConfigurationManager.ConnectionStrings["ConMotorstore"].ConnectionString); 
{ 
    dbCon.Open(); 
    SqlCommand cmd = new SqlCommand("INSERT INTO [user] VALUES (@firstName,@surname,@email,@username,@passwordHash)", dbCon); 
    cmd.Parameters.AddWithValue("firstName", firstNameTxt.Text); 
    cmd.Parameters.AddWithValue("surname", surnameTxt.Text); 
    cmd.Parameters.AddWithValue("email", emailTxt.Text); 
    cmd.Parameters.AddWithValue("username", usernameTxt.Text); 
    string passwordHash = BCrypt.Net.BCrypt.HashPassword(passwordTxt.Text); 
    cmd.Parameters.AddWithValue("passwordHash", passwordHash); 


    cmd.ExecuteNonQuery(); 
+0

Danke @mjwills! Funktioniert gut, dachte nie daran, das zu versuchen. – JackH