java实现密码重置功能_如何实施密码重置链接

我目前有一个系统,如果用户忘记了密码,他们可以通过点击忘记密码链接重置密码 . 他们将被带到他们输入用户名/电子邮件的页面,然后会向用户发送一封电子邮件,我想知道如何在电子邮件中实现密码重置链接,以便用户点击链接后/她被带到一个页面,允许他们重置密码 .

这是我控制器中的代码

public ActionResult ForgotPassword()

{

//verify user id

string UserId = Request.Params ["txtUserName"];

string msg = "";

if (UserId == null)

{

msg = "You Have Entered An Invalid UserId - Try Again";

ViewData["ForgotPassword"] = msg;

return View("ForgotPassword");

}

SqlConnection lsql = null;

lsql = DBFactory.GetInstance().getMyConnection();

String sqlstring = "SELECT * from dbo.[USERS] where USERID = '" + UserId.ToString() + "'";

SqlCommand myCommand = new SqlCommand(sqlstring, lsql);

lsql.Open();

Boolean validUser;

using (SqlDataReader myReader = myCommand.ExecuteReader())

{

validUser = false;

while (myReader.Read())

{

validUser = true;

}

myReader.Close();

}

myCommand.Dispose();

if (!validUser)

{

msg = "You Have Entered An Invalid UserId - Try Again";

ViewData["ForgotPassword"] = msg;

lsql.Close();

return View("ForgotPassword");

}

//run store procedure

using (lsql)

{

SqlCommand cmd = new SqlCommand("Stock_Check_Test.dbo.RESET_PASSWORD", lsql);

cmd.CommandType = CommandType.StoredProcedure;

SqlParameter paramUsername = new SqlParameter("@var1", UserId);

cmd.Parameters.Add(paramUsername);

SqlDataReader rdr = cmd.ExecuteReader();

while (rdr.Read())

{

if (Convert.ToInt32(rdr["RC"]) == 99)

{

msg = "Unable to update password at this time";

ViewData["ForgotPassword"] = msg;

lsql.Close();

return View("ForgotPassword");

}

}

}

msg = "new password sent";

ViewData["ForgotPassword"] = msg;

lsql.Close();

return View("ForgotPassword");

}

这是我当前的存储过程,它向用户发送电子邮件

ALTER PROCEDURE [dbo].[A_SEND_MAIL]

@var1 varchar (200), -- userid

@var2 varchar (200) -- email address

AS

BEGIN

declare @bodytext varchar(200);

set @bodytext = 'Password Reset for user: ' +@var1 + ' @' + cast (getDate() as varchar) + ' ' ;

EXEC msdb.dbo.sp_send_dbmail

@profile_name='Test',

@recipients=@var2,

@subject='Password Reset',

@body=@bodytext

END

GO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值