示例#1
0
        public ActionResult RecupAccount(RecupAccountModel model)
        {
            // On vérifie que les deux champs sont remplis
            if (ModelState.IsValid)
            {
                using (UsersContext context = new UsersContext())
                {
                    // Si on trouve un compte qui match avec les infos entrées par l'utilisateur...
                    if (context.UserProfiles.Any(
                            u => u.UserName.Equals(model.UserName, StringComparison.OrdinalIgnoreCase) &&
                            u.Email.Equals(model.Email, StringComparison.OrdinalIgnoreCase)))
                    {
                        // On crée un token permettant de réinitialiser le mot de passe ...
                        string token = WebSecurity.GeneratePasswordResetToken(model.UserName, 5);

                        // ... et on l'envoit à l'utilisateur par email
                        MailingService mailingService = new MailingService();
                        mailingService.SendTokenByEmail(token, model.Email, model.UserName);

                        return(View("RecupAccountConfirmed"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "Username or password are wrong.");
                    }
                }
            }
            return(View(model));
        }