tjek om en bruger findes før han kan oprette sig som bruger
hej eksperter :Djeg er ved at lave en side hvor en bruger kan oprette sig og jeg vil gerne tjekke om brugernavn og email findes i forevejen, for hvis ja så skal han finde en ny mail eller nyt brugernavn.
men jeg kan ikke helt få det til at virke.
jeg bruger salt og hash i mine kode, det har jeg hørt skulle have noget at sige.
Felter i database virker fint jeg kan sagtens oprette mig også når ejg bruger det samme brugernavn og email som en anden allerrede har og det duer jo ikke.
og hvis i vil være rar ikke at komme med en alt for kryptisk forklaring for jeg er nybegynder i asp.net, så vil jeg være glad.
min kode i codebehind på den side hvor brugeren kan oprette sig.
protected void btnOpret_Click(object sender, EventArgs e)
{
//tjek om email og brugernavn findes
DataTable dt_FindesBruger = objBruger.tjekBruger(txtEmail.Text, txtBrugernavn.Text);
if (dt_FindesBruger.Rows.Count > 0)
{
if (!string.IsNullOrEmpty(txtBrugernavn.Text) || !string.IsNullOrEmpty(txtkode.Text))
{
//Her skrives kode til kryptering af adgangskode...
krypteringFac objKryptering = new krypteringFac();
string salt = objKryptering.GetRandomSalt();
string HashedPassword = objKryptering.HashKode(txtkode.Text, salt);
//Gem så brugerne sammen med krypteringen af koden både salt og selve adgangskoden som bliver hashet
objBruger.OpretBruger(txtBrugernavn.Text, HashedPassword, txtEmail.Text, salt);
Response.AddHeader("REFRESH", "2;URL=" + Request.RawUrl);
}
else
{
litBruger.Text = "<h4>indtast brugernavn og adgangskode</h4>";
}
litBruger.Text = "<p>Brugernavn er nu oprettet</p>";
}
else
{
litBruger.Text += "<p>Brugernavn eller adgangskode er allerede i brug, vælg venligst et andet</p>";
}
}
Mine metoder jeg bruger.
public DataTable tjekBruger(string Email, string brugernavn)
{
cmd = new SqlCommand("SELECT fldBrugernavn, fldEmail FROM tblBruger WHERE fldBrugernavn=@brugernavn OR fldEmail=@email");
cmd.Parameters.AddWithValue("@email", Email);
cmd.Parameters.AddWithValue("@brugernavn", brugernavn);
return DA.GetData(cmd);
}
og
public void OpretBruger(string _brugernavn, string _adgangskode, string _email, string _salt)
{
cmd = new SqlCommand("INSERT INTO tblBruger(fldBrugernavn, fldAdgangskode, fldEmail, fldSalt) VALUES(@brugernavn, @adgangskode, @Email, @salt)");
cmd.Parameters.AddWithValue("@brugernavn", _brugernavn);
cmd.Parameters.AddWithValue("@adgangskode", _adgangskode);
cmd.Parameters.AddWithValue("@email", _email);
cmd.Parameters.AddWithValue("@salt", _salt);
DA.ModifyData(cmd);
}