【发布时间】:2020-06-26 10:42:11
【问题描述】:
如果数据库中存在特定的 emailID,则此方法返回 userId。
public DataTable isEmailExist(string emailID)
{
DataTable dt = new DataTable();
string connstr = ConfigurationManager.ConnectionStrings["myConString"].ToString();
using (SqlConnection con = new SqlConnection(connstr))
{
using (SqlCommand cmd = new SqlCommand("validateEmail", con))
{
using (SqlDataAdapter da = new SqlDataAdapter())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue(@"p_emailid", SqlDbType.VarChar).Value = emailID;
da.SelectCommand = cmd;
con.Open();
da.Fill(dt);
}
}
}
return dt;
}
这是我重置密码的 mvc 方法,它将调用将新密码插入数据库的方法
[HttpPost]
public JsonResult ResetPassword(ResetPasswordModel reset)
{
AjaxResponse ajaxResponse = new AjaxResponse()
{
StatusCode = "Error"
};
if (reset != null)
{
ajaxResponse.StatusCode = "OK";
PasswordReset(reset);
}
else
{
ajaxResponse.Message = "Reset Password Failed";
}
return Json(ajaxResponse, JsonRequestBehavior.AllowGet);
}
这个方法是向数据库发送数据
private ResetPasswordModel PasswordReset(ResetPasswordModel reset)
{
reset.Password = Encrypt(reset.Password);
reset.ConfirmPassword = Encrypt(reset.ConfirmPassword);
if (ModelState.IsValid)
{
string connstr = ConfigurationManager.ConnectionStrings["myConString"].ToString();
using (SqlConnection con = new SqlConnection(connstr))
{
using (SqlCommand cmd = new SqlCommand("Reset_Password", con))
{
using (SqlDataAdapter da = new SqlDataAdapter())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue(@"p_resetUserID", SqlDbType.VarChar).Value = isUserIdExist;
cmd.Parameters.AddWithValue(@"p_newpassword", SqlDbType.VarChar).Value = reset.Password;
cmd.Parameters.AddWithValue(@"p_confirmPassword", SqlDbType.VarChar).Value = reset.ConfirmPassword;
da.SelectCommand = cmd;
con.Open();
}
}
}
}
return reset;
}
**1。 isEmailExist 方法返回一个用户 ID,我想将该用户 ID 用于 PasswordReset 方法。
- 想使用 userId 作为存储过程方法的参数。
3.但是 isEmailExist 方法接受一个 email 参数,所以如何在 PasswordReset 方法中使用它。**
【问题讨论】:
-
您的
ResetPasswordModel是否已有您正在寻找的电子邮件地址? -
"isEmailExist 方法返回一个用户 ID,我想将该用户 ID 用于 PasswordReset 方法。" ...好的。但目前还不清楚你被困在哪里。当您尝试运行该方法时发生了什么?您的帖子描述了您的要求,但没有描述任何类型的问题。我们不明白为什么你坚持实施它。出了什么问题?流程的哪一部分你不明白?你需要执行方法并得到结果。
-
如果它返回一个数据表,那么你需要在表中找到值(如果它是单个值,它很可能在数据表第一行的第一个单元格中(虽然因为你没有显示存储过程代码,我们实际上不知道它会真正返回什么)。
-
不,这只是问题 isEmailexist 接受参数 emailId 并从数据库返回 userID 那么如何在没有 email 参数的 PasswordReset 方法中使用 isEmailExist。
-
通常你会从 Session 中获取当前登录用户的 ID。使用 asp.net 时,这通常是通过 User.Identity 对象,该对象应该在所有控制器方法中都可用。
标签: c# asp.net sql-server asp.net-mvc