【发布时间】:2017-07-27 23:37:42
【问题描述】:
我创建了一个函数“Recover(string UserEmail)”,当他/她忘记登录信息时接收用户的电子邮件。此函数运行一个名为“Recover_PassWord”的存储过程,我希望它返回用户名和密码,以便我可以向用户发送电子邮件。我不太熟悉创建返回此信息的简单存储过程的语法。我也不太熟悉在 C# 中存储返回的值,所以我可以使用它。
Recover_PassWord:
CREATE DEFINER=`root`@`localhost` PROCEDURE `Recover_Password`(IN Email CHAR(40))
BEGIN
SELECT UserName,PassWord FROM userdata
WHERE Email=ContactEmail;
END
恢复(字符串用户电子邮件):
public ActionResult Recover(string UserEmail)
{
Login model = new Login();
MySqlConnection connect = DbConnection();
MySqlCommand cmd = new MySqlCommand("Recover_PassWord",connect);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Email", UserEmail);
MySqlDataReader rd = cmd.ExecuteReader();
while (rd.Read())
{
if (UserEmail == rd["ContactEmail"].ToString())
{
MailMessage msg = new MailMessage();
msg.To.Add(UserEmail);
msg.Subject = "Recovered Login Information";
msg.Body = "Hello," + Environment.NewLine + "Your Login Information: "; //this is where i want to be able to use the returned value
}
}
return null;
}
有人对我如何实现这一目标有任何建议和建议吗?
【问题讨论】:
-
你尝试过使用实体框架吗?
-
我没有。最近有没有关于如何使用它的文章?
-
你应该试试,用它调用SP真的很方便entityframeworktutorial.net/EntityFramework5/…
-
如果您可以将用户密码返回给他们,那么您做错了什么。密码绝不应以明文形式或使用可逆加密存储。
-
@DanielMann 我知道我应该对我的密码进行散列和加盐,但我现在只是想让该功能正常工作
标签: c# mysql stored-procedures