Пример #1
0
        /// <summary>
        /// Fonction servant à retrouver le mot de passe du username passé en paramètre
        /// </summary>
        /// <param name="username"></param>
        /// <returns>True ou false si l'operation est réussi ou non</returns>
        public static bool passwordRecovery(string username)
        {
            OracleConnection conn = Connection.getInstance().conn;

            string sqlSelect = "select username,email from joueurs where username = :username";
            string result = "";
            string resultemail = "";
            bool userExiste = Controle.userExiste(username);
            if (userExiste)
            {
                try
                {

                    OracleCommand oraSelect = conn.CreateCommand();
                    oraSelect.CommandText = sqlSelect;
                    OracleParameter OraParamUsername = new OracleParameter(":USERNAME", OracleDbType.Varchar2, 32);
                    OraParamUsername.Value = username.ToLower();

                    oraSelect.Parameters.Add(OraParamUsername);

                    OracleDataReader objRead = oraSelect.ExecuteReader();
                    while (objRead.Read())
                    {
                        result = objRead.GetString(0);
                        resultemail = objRead.GetString(1);
                    }
                    objRead.Close();
                    if (result != null && resultemail != null)
                    {
                        // Choisi un chiffre random entre 1 et 9
                        Random random = new Random();
                        int randomNumber = random.Next(1, 9);
                        Rotation rot = new Rotation(randomNumber);
                        // Encrypte le username avec le nombre tiré
                        string UserHash = rot.Chiffrer(username);
                        // Ajoute le numero à la fin du username encrypté
                        UserHash += randomNumber;
                        // Envoie le email pour resetter son password
                        string link = "<a href=http://www.thronewars.ca/ResetPassword.aspx?User="******">Ici</a>";
                        //Reset password
                        Email.sendMail(resultemail, Email.SubjectResetPass, Email.BodyResetPass + link);
                    }
                    
                    return true;
                }
                catch (OracleException ex)
                {
                    Erreur.ErrorMessage(ex);
                    return false;
                }
            }
            else
                return false;
        }