gpt4 book ai didi

c# - webservice - 功能和方法

转载 作者:行者123 更新时间:2023-11-29 05:35:26 26 4
gpt4 key购买 nike

我正在使用 visual studio 2010 通过 mysql 数据库执行网络服务。

我已经完成了一个检查密码并返回密码(当前密码)的功能,在 web 方法中,我调用该函数来验证更改前的旧密码是否相等,然后再继续调用 mysql 命令。但即使我仔细检查并直接从数据库复制粘贴用户/密码,网络方法调用也会返回无效。谁能看到我哪里出错了?或者我需要提供任何其他信息。感谢您帮助我!

EDIT1:应该是函数do_check_password的问题。我已经尝试阻止包含 do_check_password 的 if 循环并且能够成功更改。

我的函数代码

private string do_check_password(string username)
{
string connectionString = ConfigurationManager.ConnectionStrings["mysql"].ToString();
MySqlCommand dCmd = new MySqlCommand();
using (MySqlConnection mysqlCon = new MySqlConnection(connectionString))
{
mysqlCon.Open();
dCmd.CommandText = "select password from tbl_login WHERE username = ?username ";
dCmd.CommandType = CommandType.Text;
dCmd.Parameters.Add(new MySqlParameter("?username", username));
dCmd.Connection = mysqlCon;
dCmd.ExecuteNonQuery();
mysqlCon.Close();
MySqlDataAdapter da = new MySqlDataAdapter(dCmd);
DataTable dt = new DataTable();
da.Fill(dt);

string currentPassword = dt.Rows[0].ToString();
return currentPassword;
}

}

[网络方法]

    public string editUserPassword(string username, string oldPassword, string newPassword)
{

try
{

string connectionString = ConfigurationManager.ConnectionStrings["mysql"].ToString();
MySqlCommand dCmd = new MySqlCommand();
using (MySqlConnection mysqlCon = new MySqlConnection(connectionString))
{
if(do_check_password(username) == oldPassword)
{
mysqlCon.Open();
dCmd.CommandText = "UPDATE tbl_login SET password=?password WHERE username=?username";
dCmd.CommandType = CommandType.Text;
dCmd.Parameters.Add(new MySqlParameter("?username", username));
dCmd.Parameters.Add(new MySqlParameter("?password", newPassword));
dCmd.Connection = mysqlCon;
dCmd.ExecuteNonQuery();
mysqlCon.Close();
}
else

{
return string.Format( "invalid password");
}
}
return string.Format("password changed");
}
catch (Exception ex)
{
return string.Format(ex.Message);
}

}

最佳答案

在您的 do_check_password 中,您有这一行:

dCmd.ExecuteNonQuery();

不应该是

dCmd.ExecuteReader();

不过请注意,不要以明文形式存储这些密码。使用单向散列用盐加密密码。

关于c# - webservice - 功能和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11094129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com