Как сделать ссылку неактивной через 24 часа и не должна работать по второму клику
Я использую asp.net веб-приложение. Я отправляю письмо пользователю, в котором передаю ссылку. Нажав на эту ссылку, я внесу изменения в свою базу данных. Я использую следующий код:
Он отлично работает для отправки электронной почты со ссылкой. Я хочу, чтобы эта ссылка была неактивна через 24 часа и нажата только один раз. Если нажать дважды, то ничего не получится. Как это сделать?
using (MailMessage mm = new MailMessage("sender@gmail.com", txtEmail.Text)) { mm.Subject = "Account Activation"; string body = "Hello " + txtUsername.Text.Trim() + ","; body += "<br /><br />Please click the following link to activate your account"; body += "<br /><a href = '" + Request.Url.AbsoluteUri.Replace("CS.aspx", "CS_Activation.aspx?ActivationCode=" + activationCode) + "'>Click here to activate your account.</a>"; body += "<br /><br />Thanks"; mm.Body = body; mm.IsBodyHtml = true; SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.gmail.com"; smtp.EnableSsl = true; NetworkCredential NetworkCred = new NetworkCredential("sender@gmail.com", "<password>"); smtp.UseDefaultCredentials = true; smtp.Credentials = NetworkCred; smtp.Port = 587; smtp.Send(mm); }
Что я уже пробовал:
using (MailMessage mm = new MailMessage("sender@gmail.com", txtEmail.Text)) { mm.Subject = "Account Activation"; string body = "Hello " + txtUsername.Text.Trim() + ","; body += "<br /><br />Please click the following link to activate your account"; body += "<br /><a href = '" + Request.Url.AbsoluteUri.Replace("CS.aspx", "CS_Activation.aspx?ActivationCode=" + activationCode) + "'>Click here to activate your account.</a>"; body += "<br /><br />Thanks"; mm.Body = body; mm.IsBodyHtml = true; SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.gmail.com"; smtp.EnableSsl = true; NetworkCredential NetworkCred = new NetworkCredential("sender@gmail.com", "<password>"); smtp.UseDefaultCredentials = true; smtp.Credentials = NetworkCred; smtp.Port = 587; smtp.Send(mm); }
F-ES Sitecore
Обновите свою базу данных, чтобы иметь поле "Email_Sent" для пользователя, и когда вы отправляете электронное письмо, обновите дату Email_Sent пользователя, чтобы показать это. Прежде чем вы попытаетесь отправить электронное письмо, проверьте значение Email_Sent, чтобы узнать, прошло ли менее 24 часов с момента отправки письма, и если да, то ничего не делайте.