나는 asp.net C#을 사용하여 만든 간단한 로그인 페이지를 가지고 있습니다. 무슨 일을하려고하는 사용자 수준을 검색하고 세션에 할당하고 수준에 따라 적절한 페이지로 리디렉션됩니다. 하지만 로그인 할 때 아무 일도 일어나지 않습니다. 아래 코드는 내 코드입니다. 누군가 내 코드에 어떤 문제가 있다고 말할 수 있습니까? 당신이 int
에 Session["level"]
을 캐스팅 한 후 string
와 동일한 지 어떤지를 확인 (또는를 시도)되어 우선 들어asp.net에서 세션을 사용하여 로그인 레벨 인증 C#
con.Open();
com.CommandText = "Select * from deatls Where c_id = '" + TextBox1.Text + "' and password = '" + TextBox2.Text + "'";
com.CommandType = CommandType.Text;
com.Connection = con;
SqlDataReader sqlread = com.ExecuteReader();
if (sqlread.Read())
{
Session["level"] = sqlread["level"];
}
if ((int)Session["level"] == '1')
Response.Redirect("customer_menu.aspx");
if ((int)Session["level"] == '2')
Response.Redirect("front.aspx");
if ((int)Session["level"] == '3')
Response.Redirect("manager.aspx");
else
Response.Redirect("login.aspx");
con.Close();
는 정말 보안 결함이 SQL 코드 즉. 프로덕션 환경에서 사용하지 마십시오. 정확히 해커가 [SQL Injection Attacks] (http://en.wikipedia.org/wiki/SQL_injection)를 시도합니다. –
왜 디버거로 단계별 실행을하지 않고 쿼리가 반환하는지 확인하고 Session [ "level"]'할당을 확인하십시오. –
@LiveEn : sqlread.Read()가 false를 반환하면 어떻게됩니까? 그 사건을 테스트해야합니다. – Taylor