1

ユーザー名とパスワードが正しい場合は新しいフォームを開く必要がありますが、正しいユーザー名またはパスワードを入力してもこのコードが機能しません。

private void login_Click(object sender, EventArgs e)
{
   try
   {
      string connection = @"Data Source=DX-PC;Initial Catalog=login;Integrated Security=True";
      SqlConnection cn = new SqlConnection(connection);

      cn.Open();

      string userText = user.Text;
      string passText = pass.Text;

      SqlCommand cmd = new SqlCommand("SELECT ISNULL(Username, '') AS Username, ISNULL(Password,'') AS Password FROM log WHERE Username = @username and Password = @password", cn);
      cmd.Parameters.Add(new SqlParameter("username", userText));
      cmd.Parameters.Add(new SqlParameter("password", passText));

      SqlDataReader dr = cmd.ExecuteReader();

      try
      {
          dr.Read();
          if (dr["Username"].ToString().Trim() == userText && dr["Password"].ToString().Trim() == passText)
          {
              MessageBox.Show("This message won't Display");
          }
      }
      catch
      {
          MessageBox.Show("Invalid Username or Password");
      }

      dr.Close();
      cn.Close();
   }
   catch (Exception ex)
   {
       MessageBox.Show(ex.Message);
   }
} 
4

3 に答える 3

0

あなたが提供したコードはSQLインジェクションとXSSに対して脆弱ですが、あなたの質問に答えるために、SQLクエリでのフィルター基準の文字列比較は大文字と小文字を区別しません.NETコードでは大文字と小文字が区別されます.

于 2013-08-18T08:44:10.987 に答える