Здравствуйте. Я в программирование новичок. Всего пару дней как работаю в Visual Studio 2012 Web Express.
Мне необходимо сделать возможность восстановления пароля на сайте.
В AccountController вставил слудющий код:
[AllowAnonymous]
[HttpPost]
public ActionResult RestorePassword(RestorePasswordModel model)
{
RedUsers cu = db.RedUsers.SingleOrDefault(c => c.Login == "admin");
if (ModelState.IsValid && cu != null)
{
String token = WebSecurity.GeneratePasswordResetToken(cu.Login); //Ошибка тут
try
{
MailMessage mm = new MailMessage();
mm.From = new MailAddress("xxxxxxx@gmail.com");
mm.Subject = "Восстановление пароля RedSystem";
mm.To.Add(model.Email);
String ourSite = SystemValuesController.GetString("SITE", db);
mm.Body = "http://" + ourSite + "/Account/ChangeUserPassword?Token=" + token + "&UserName=" + cu.Login;
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
smtp.EnableSsl = true;
smtp.Timeout = 10000;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential("xxxxxx@gmail.com", "G69854E");
smtp.Send(mm);
}
catch { }
}
return RedirectToAction("TokenSend");
}
[AllowAnonymous]
public ActionResult TokenSend()
{
ViewBag.Message = "Ссылка для восстановления пароля отправлена на указанный вами адрес";
return View();
}
Но когда я перехожу в раздел восстановления пароля, ввожу в форму эмайл и нажимаю кнопку восстановить, вместо сообщения
[AllowAnonymous]
public ActionResult TokenSend()
{
ViewBag.Message = "Ссылка для восстановления пароля отправлена на указанный вами адрес";
return View();
}
меня выбрасывает обратно в AccountController -> ActionResult RestorePassword в строку
String token = WebSecurity.GeneratePasswordResetToken(cu.Login);
Текст ошибки: Для вызова этого метода свойство "Membership.Provider" должно быть экземпляром "ExtendedMembershipProvider".
Огромное спасибо за помощь!