none
Восстановление пароля в Visual Studio 2012 Express RRS feed

  • Вопрос

  • Здравствуйте. Я в программирование новичок. Всего пару дней как работаю в 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".

    Огромное спасибо за помощь!



    17 июня 2013 г. 7:09

Ответы