Hie, C# 클래스에서 SQL 쿼리를 실행하려는 위기가 있습니다. 이전에 로그인 페이지에서 제대로 작동하고 있었고 이동했을 때 거의 변경되지 않았습니다. 클래스클래스에서 MySQL 쿼리를 실행하는 중에 예외가 발생했습니다.
SQL 쿼리 :
namespace Masca
{
public class loginc
{
// Telling the class that the page 'Login' exists.
public Login login;
는 .... login.cs에서
public void Login()
{
// connection parameters
string sqlcon = "datasource=localhost;port=3306;username = root; password = root";
//Command to carry out -This is what the exception highlights when it's thrown.
string query = "SELECT * FROM logon.login where username = '" + login.username.Text + "' and password = '" + login.password.Password + "';";
MySqlConnection con = new MySqlConnection(sqlcon);
MySqlCommand cmd = new MySqlCommand (query,con);
MySqlDataReader rdr;
con.Open();
rdr = cmd.ExecuteReader();
int count = 0;
while (rdr.Read())
{
count = count + 1;
}
if (count == 1)
{
//If the username and password match those in the database table, run the method 'login' in the login page cs.
login.login();
}
else
{
// if they don't match, run the method 'failLogin' in the login page cs.
login.failLogin();
}
}
나는 두 개의 텍스트 상자와 버튼이 있습니다. 하나는 사용자 이름 용이고 다른 하나는 암호 용입니다. 버튼이 위의 코드를 실행한다고 가정합니다.
public void Logon_Click(object sender, RoutedEventArgs e)
{
loginc.Login();
}
그러나 고전적인 "개체 참조가 개체의 인스턴스로 설정되지"쿼리에 throw 된 예외가 발생합니다. '+ login.username.Text +'및 '+ login.password.Password +'대신 실제 자격 증명을 입력하면 'login.Login()'에 예외가 발생합니다.
loginc.cs 클래스가 login.cs와의 관계를 거부하지만 login.cs가 클래스에서 같은 방식으로 메소드를 트리거하는 데 문제가 없다는 것을 이해하지 못합니다. 누구 내가 잘못 가고 있는지 알아?
일반 텍스트로 암호를 저장하고 SQL 주입 취약점이 있습니까? 감미로운 아기 예수 [자신을 교육하십시오] (http://www.troyhunt.com/2013/07/everything-you-wanted-to-know-about-sql.html) – DGibbs