Visual Studio 2010에서 웹 응용 프로그램을 개발했으며이 응용 프로그램에 사용자 로그인 시스템을 추가하려고 시도 중입니다. 지금까지 나는 사용자 이름과 관련된 암호가 일치하더라도 모든 암호가 올바르지 않다고 알려주기 때문에 사용자 암호를 확인하는 데 문제가 있습니다. 이것은 내가 아들까지 작성한 코드입니다 :에 관계없이 프로그램을 입력 무슨 암호사용자 로그인 시스템에서 암호와 관련된 문제. C#
protected void n_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
con.Open();
string cmdStr = "select count(*) from Registration where UserName='" + TextBoxUserName.Text + "'";
SqlCommand CheckUser = new SqlCommand(cmdStr, con);
int Temp = Convert.ToInt32(CheckUser.ExecuteScalar().ToString());
if (Temp == 1)
{
string cmdStr2 = "Select Password from Registration where UserName ='" + TextBoxUserName.Text + "'";
SqlCommand pass = new SqlCommand(cmdStr2, con);
string password = pass.ExecuteScalar().ToString();
con.Close();
if (password == TextBoxPassword.Text)
{
Session["New"] = TextBoxUserName.Text;
Response.Redirect("HomePage.aspx");
}
else
{
Label1.Visible = true;
Label1.Text = "Password is invalid";
}
}
else
{
Label1.Visible = true;
Label1.Text = "Username is invalid";
}
}
}
}
것이다 문제가의 첫 번째 부분하다면 있음을 나타냅니다 출력 '암호가 잘못되었습니다' 성명서? 또는 사용하는 변수? 유효하지 않은 사용자 이름이 같은 방식으로 플래그를 지정하고 이것이 정상적으로 작동한다고 언급 할 가치가 있습니다. 사전 :
SQL 인젝션을 확인하십시오. – empi
암호는 데이터베이스에서 소금 처리되고 해시되어야합니다. 암호를 일반 텍스트로 저장하면 안됩니다. – zimdanen
당신이 지금까지 가지고있는 것은 매우 불안정합니다. 구글 "SQL 인젝션 공격"이 무슨 뜻인지 알기. – ken