Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “不可能发生”。有什么回应吗?数据更新了吗?存储纯文本密码会带来麻烦。编写SQL易受攻击的代码是自找麻烦(尤其是纯文本密码)。@LauWeiqi你有例外吗?如果是,在哪条线上?你调试代码了吗?如果是,它是否进入并成功运行最里面的If块?你需要更精确地说明什_C# - Fatal编程技术网

C# “不可能发生”。有什么回应吗?数据更新了吗?存储纯文本密码会带来麻烦。编写SQL易受攻击的代码是自找麻烦(尤其是纯文本密码)。@LauWeiqi你有例外吗?如果是,在哪条线上?你调试代码了吗?如果是,它是否进入并成功运行最里面的If块?你需要更精确地说明什

C# “不可能发生”。有什么回应吗?数据更新了吗?存储纯文本密码会带来麻烦。编写SQL易受攻击的代码是自找麻烦(尤其是纯文本密码)。@LauWeiqi你有例外吗?如果是,在哪条线上?你调试代码了吗?如果是,它是否进入并成功运行最里面的If块?你需要更精确地说明什,c#,C#,“不可能发生”。有什么回应吗?数据更新了吗?存储纯文本密码会带来麻烦。编写SQL易受攻击的代码是自找麻烦(尤其是纯文本密码)。@LauWeiqi你有例外吗?如果是,在哪条线上?你调试代码了吗?如果是,它是否进入并成功运行最里面的If块?你需要更精确地说明什么不起作用。C#不是我擅长的语言,但我看不到与按钮相关的代码。请仔细阅读评论。如果在内部If语句处设置断点,它在运行时是否停止?用于sql注入预防。用于更安全地处理密码。此外,您正在更新所有碰巧拥有相同密码的用户。您还应该在WHERE子句中检查


“不可能发生”。有什么回应吗?数据更新了吗?存储纯文本密码会带来麻烦。编写SQL易受攻击的代码是自找麻烦(尤其是纯文本密码)。@LauWeiqi你有例外吗?如果是,在哪条线上?你调试代码了吗?如果是,它是否进入并成功运行最里面的If块?你需要更精确地说明什么不起作用。C#不是我擅长的语言,但我看不到与按钮相关的代码。请仔细阅读评论。如果在内部
If
语句处设置断点,它在运行时是否停止?用于sql注入预防。用于更安全地处理密码。此外,您正在更新所有碰巧拥有相同密码的用户。您还应该在
WHERE
子句中检查匹配的
userid
。@LauWeiqi用谷歌搜索
Bobby Tables
,以了解此代码的错误。最好的情况是,有人输入
”--
删除所有密码。最坏的情况是,有人写
”;删除表user.register--。不要使用动态SQL,使用参数化查询。也不要编写自己的用户管理代码。存储密码的正确方法是对密码进行加密,使用强加密算法对密码进行至少1000次散列,然后只存储散列。像ASP.NET Core Identity这样的框架已经正确地做到了这一点您所说的“什么都不发生”是什么意思。有什么回应吗?数据更新了吗?存储纯文本密码会带来麻烦。编写SQL易受攻击的代码是自找麻烦(尤其是纯文本密码)。@LauWeiqi你有例外吗?如果是,在哪条线上?你调试代码了吗?如果是,它是否进入并成功运行最里面的If块?你需要更精确地说明什么不起作用。C#不是我擅长的语言,但我看不到与按钮相关的代码。请仔细阅读评论。如果在内部
If
语句处设置断点,它在运行时是否停止?用于sql注入预防。用于更安全地处理密码。此外,您正在更新所有碰巧拥有相同密码的用户。您还应该在
WHERE
子句中检查匹配的
userid
。@LauWeiqi用谷歌搜索
Bobby Tables
,以了解此代码的错误。最好的情况是,有人输入
”--
删除所有密码。最坏的情况是,有人写
”;删除表user.register--。不要使用动态SQL,使用参数化查询。也不要编写自己的用户管理代码。存储密码的正确方法是对密码进行加密,使用强加密算法对密码进行至少1000次散列,然后只存储散列。像ASP.NET Core Identity这样的框架已经正确地做到了这一点
  public void Btnchange_Click(object sender, EventArgs args)

 MySqlConnection con = new MySqlConnection("server=localhost;user id=root;persistsecurityinfo=True;database=user;password=1234");
        MySqlDataAdapter sda = new MySqlDataAdapter("select Password from user.register where Password='" + textoldpassword.Text + "'", con);
        DataTable dt = new DataTable();
        sda.Fill(dt);

        if (dt.Rows.Count.ToString() == "1")
        {
            if (textnewpassword.Text == textconfirmpassword.Text)
            {
                con.Open();
                MySqlCommand cmd = new MySqlCommand("update user.register set Password ='" + textconfirmpassword.Text + "' where Password ='" + textoldpassword.Text + "'", con);
                cmd.ExecuteNonQuery();

                con.Close();
                lblmsg.Text = "Succesfully Updated";
                lblmsg.ForeColor = Color.Green;
            }

            else
            {
                lblmsg.Text = "New password and confirm password should be same!";
            }
private class MyUser
{
    public int Id { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }
}
private void Btnchange_Click(object sender, EventArgs e) {
if (!textnewpassword.Text.Trim().Equals(textconfirmpassword.Text.Trim()))
{
    throw new ArgumentException("New password and confirm password should be same!");
}

List<MyUser> myUsers = new List<MyUser>();

using (MySqlConnection con =
    new MySqlConnection(
        "server=localhost;user id=root;persistsecurityinfo=True;database=user;password=1234"))
{
    using (MySqlCommand cmd = new MySqlCommand("select * from user.register where Username=@user and Password=@pass", con))
    {
        cmd.Parameters.AddWithValue("@user", textusername.Text.Trim());
        cmd.Parameters.AddWithValue("@pass", textoldpassword.Text.Trim());

        if (cmd.Connection.State != ConnectionState.Open) cmd.Connection.Open();

        using (MySqlDataReader dr = cmd.ExecuteReader())
        {
            while (dr.Read())
            {
                myUsers.Add(new MyUser
                {
                    Id = (int)dr["Id"],
                    Username = dr["Username"].ToString(),
                    Password = dr["Password"].ToString()
                });
            }
        }

        if (cmd.Connection.State == ConnectionState.Open) cmd.Connection.Close();
    }

    if (!myUsers.Any())
    {
        throw new ArgumentException("No users found with the given username/password pair!");
    }

    if (myUsers.Count != 1)
    {
        throw new ArgumentException("More than 1 user has the same username and password in the database!");
    }

    MyUser user = myUsers.First();
    user.Password = textnewpassword.Text.Trim();

    using (MySqlCommand cmd = new MySqlCommand("update user.register set Password=@pass where Id=@id"))
    {
        cmd.Parameters.AddWithValue("@pass", user.Password);
        cmd.Parameters.AddWithValue("@id", user.Id);

        if (cmd.Connection.State != ConnectionState.Open) cmd.Connection.Open();
        cmd.ExecuteNonQuery();
        if (cmd.Connection.State == ConnectionState.Open) cmd.Connection.Close();
    }
} }