Example #1
0
        public IActionResult ChangePasswordPost(string mail)
        {
            ViewBag.NbrePagesVues   = GetPageVues();
            ViewBag.NbreVisitUnique = GetVisitIP();

            List <string> errors = new List <string>();

            if (mail == null)
            {
                errors.Add("Merci de saisir une adresse mail.");
                ViewBag.errors = errors;
                return(View("ForgotPassword"));
            }

            Membres m = new Membres {
                Mail = mail
            };

            if ((!m.VerifMailExist()))
            {
                errors.Add("Il n'y a pas d'utilisateur avec cette adresse mail.");
                ViewBag.errors = errors;
                ViewBag.Mail   = m.Mail;
                return(View("ForgotPassword"));
            }

            string NoUnique = m.GetNoUniqueMembre();

            SmtpClient client = new SmtpClient
            {
                Host        = PassConnection.SmtpConfig(),
                Port        = 587,
                EnableSsl   = true,
                Credentials = new NetworkCredential("*****@*****.**", PassConnection.MailPassWord())
            };

            MailMessage message = new MailMessage("*****@*****.**", m.Mail)
            {
                IsBodyHtml = true,
                Body       = "Merci de confirmer votre adresse mail en cliquant sur le lien suivant: <a href = \"http://www.greys-anatomy-fans.com/Membres/ReinitializeLostPassWord/" + NoUnique + "\">Lien</a>"
                ,


                Subject = "Réinitialisation du Mot de Passe"
            };



            client.Send(message);

            ViewBag.Message = $"Un mail vous permettant de réinitialiser votre mot de passe a été envoyé à {m.Mail}";

            return(View("ForgotPassword"));
        }
Example #2
0
        public IActionResult testAPI()
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();
            ConsentCookie(ViewBag);
            UserConnect(ViewBag);

            var client  = new RestClient(PassConnection.connectionTheMovieDB());
            var request = new RestRequest(Method.GET);

            request.AddParameter("undefined", "{}", ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);


            var response2 = JsonConvert.DeserializeObject <SerieInfo>(response.Content);

            return(View("AdminSite", response2));
        }
Example #3
0
        public IActionResult RegisterPost(string pseudo, string mail, string password, string cPassword)
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();
            ConsentCookie(ViewBag);

            List <string> errors = new List <string>();

            string  remoteIpAddress = Convert.ToString(Request.HttpContext.Connection.RemoteIpAddress);
            Membres m = new Membres {
                Pseudo = pseudo, Mail = mail, Password = password, Ip = remoteIpAddress
            };

            if (pseudo == null)
            {
                errors.Add("Merci de saisir un pseudo!");
            }
            if (mail == null)
            {
                errors.Add("Merci de saisir une adresse mail!");
            }
            if (password == null)
            {
                errors.Add("Merci de saisir un mot de passe!");
            }
            if (password != cPassword)
            {
                errors.Add("Merci de saisir le même mot de passe!");
            }

            if (m.Pseudo != null)
            {
                if (m.VerifPseudoExist())
                {
                    errors.Add("Ce pseudo existe déja, veuillez en choisir un autre.");
                }
            }

            if (m.Mail != null)
            {
                if (m.VerifMailExist())
                {
                    errors.Add("Cette adresse mail est déjà enregistrée!");
                }
            }

            if (errors.Count() > 0)
            {
                ViewBag.errors = errors;
                return(View("Register", m));
            }
            else
            {
                string pattern = @"^[A-z0-9._-]+(@)[a-z-9_-]+\.[a-z]{2,5}$";
                Regex  r       = new Regex(pattern);

                if (!r.IsMatch(m.Mail))
                {
                    errors.Add("Cette adresse mail n'est pas valide!");
                }

                pattern = "[a-zA-Z0-9]{4,10}";
                r       = new Regex(pattern);
                if (!r.IsMatch(m.Pseudo))
                {
                    errors.Add("Le pseudo doit contenir minimum 4 caractères!");
                }

                pattern = "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*\\W)";
                r       = new Regex(pattern);

                if (!r.IsMatch(m.Password))
                {
                    errors.Add("Mot de passe invalide! Il doit être compris entre 8 et 15 caractères et contenir " +
                               "au minimum un chiffre, une majuscule et un caractère spécial");
                }

                if (errors.Count() > 0)
                {
                    ViewBag.errors = errors;
                    return(View("Register", m));
                }
            }


            string NumeroUnique = Guid.NewGuid().ToString("N"); /*Creation d'un ID unique pour le cookie*/

            string HashPassword = Crypto.HashMdp(password);     /*Cryptage PassWord*/

            m = new Membres {
                Pseudo = pseudo, Mail = mail, Password = HashPassword, Ip = remoteIpAddress, NoUnique = NumeroUnique, DateInscription = DateTime.Now
            };

            SmtpClient client = new SmtpClient
            {
                Host        = PassConnection.SmtpConfig(),
                Port        = 587,
                EnableSsl   = true,
                Credentials = new NetworkCredential("*****@*****.**", PassConnection.MailPassWord())
            };

            MailMessage message = new MailMessage("*****@*****.**", m.Mail)
            {
                IsBodyHtml = true,
                Body       = "Merci de confirmer votre adresse mail en cliquant sur le lien suivant: <a href = \"http://www.greys-anatomy-fans.com/Membres/Confirm/" + m.NoUnique + "\">Lien</a>"
                ,


                Subject = "Confirmez votre adresse Mail"
            };



            client.Send(message);

            m.AddMembre();

            CookieOptions option = new CookieOptions
            {
                Expires  = DateTime.Now.AddDays(30),
                HttpOnly = true
            };

            Response.Cookies.Append("User", m.NoUnique, option);

            var request = Request;

            return(View("SendMailRegistration", m));
        }