Я отправляю и сохраняю OTP в HttpCookie следующим методом (конечная точка API)
var user = manager.FindByEmail(Email);
Random random = new Random();
long OTP = random.Next(100000, 999999);
HttpCookie httpCookie = new HttpCookie(user.FirstName);
httpCookie.Values.Add("OTP", OTP.ToString());
httpCookie.Expires = DateTime.Now.AddMinutes(10);
HttpContext.Current.Response.Cookies.Add(httpCookie);
string message = "Your OTP for Password Reset : " + HttpContext.Current.Request.Cookies[user.FirstName]["OTP"];
try
{
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("your email");
mailMessage.To.Add(Email);
mailMessage.Subject = "Reset Account Password...";
mailMessage.Body = message;
mailMessage.IsBodyHtml = true;
SmtpClient smtpClient = new SmtpClient();
smtpClient.Host = "smtp.gmail.com";
NetworkCredential credentials = new NetworkCredential("your email", "your password");
smtpClient.Credentials = credentials;
smtpClient.Port = 587;
smtpClient.EnableSsl = true;
smtpClient.Send(mailMessage);
}
catch(Exception ex)
{
throw ex;
}
Я проверяю OTP в отдельной конечной точке (функция).Пытаясь получить данные Cookie.Но когда я пытаюсь получить данные из файла cookie, он возвращает null
.Следовательно, OTP не соответствует.
var user = manager.FindByEmail(Email);
if (Convert.ToInt64(HttpContext.Current.Request.Cookies[user.FirstName]["OTP"]) == EnteredOTP)
{
return "CorrectOTP";
}
else
{
return "IncorrectOTP";
}
Но HttpContext.Current.Request.Cookies[user.FirstName]["OTP"]
не содержит соответствующего значения.У меня вопрос, как я могу поддерживать значение OTP между различными API / конечной точкой / функциями