public ActionResult Create(InscriptionModel inscriptionModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    string connectionString = Configuration["ConnectionStrings:DefaultConnection"];
                    using (SqlConnection connection = new SqlConnection(connectionString))
                    {
                        string Salt = Securite.GetSalt();
                        string EncryptedPassword = Securite.GenerateSHA256String(inscriptionModel.Password + Salt);
                        EncryptedPassword += ":" + Salt;

                        string sql = $"Insert Into dbo.Utilisateur (TypeUtilisateurID, Prenom, Nom, Inscription, Courriel, MotDePasse, Username) Values ('1', '{inscriptionModel.Prenom}','{inscriptionModel.Nom}',GETDATE(),'{inscriptionModel.Courriel}','{EncryptedPassword}','{inscriptionModel.Username}')";
                        using (SqlCommand command = new SqlCommand(sql, connection))
                        {
                            command.CommandType = CommandType.Text;
                            connection.Open();
                            command.ExecuteNonQuery();
                            connection.Close();
                        }
                        return(Redirect("/Home"));
                    }
                }
                else
                {
                    return(RedirectToAction(nameof(Index)));
                }
            }
            catch
            {
                return(View());
            }
        }
예제 #2
0
        public bool Connection(string username, string password)
        {
            utilisateur = new Utilisateur();
            utilisateur = (Utilisateur)lstUtilisateurs.Where(x => x.Username == username).FirstOrDefault();

            //Utilisateur inexistant
            if (utilisateur == null)
            {
                return(false);
            }

            string mdp    = "";
            string salt   = "";
            bool   isSalt = false;

            for (int i = 0; i < utilisateur.MotDePasse.Length; i++)
            {
                if (utilisateur.MotDePasse[i] == ':' && !isSalt)
                {
                    isSalt = true;
                }
                else if (isSalt)
                {
                    salt += utilisateur.MotDePasse[i];
                }
                else
                {
                    mdp += utilisateur.MotDePasse[i];
                }
            }

            string passwordEntre = Securite.GenerateSHA256String(password + salt);

            if (mdp != passwordEntre)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }