Ejemplo n.º 1
0
    /// <summary>
    /// Reset della password. Viene inviata una mail all'utente con la nuova password.
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void ButtonReset_Click(object sender, EventArgs e)
    {
        try
        {
            string emailDestinatario = string.Empty;

            BusinessObjects.ConfigurationSetting objConfigurationSetting = new BusinessObjects.ConfigurationSetting();
            string emailMittente = objConfigurationSetting.getValue("EmailNoReply");

            string  idDestinatario = string.Empty;
            string  Password       = objUtilita.GenerateRandomPassword();
            Utente  objUtente      = new Utente();
            Clienti objClienti     = new Clienti();
            objUtente.ReadByUser(InputUser.Text);
            emailDestinatario = objUtente.Ute_email.ToString();

            objClienti.Read(objUtente.Cli_id_cliente, qCultureInfoName);

            if (objUtente.Ute_id_utente.IsNull)
            {
                idDestinatario = "";
            }
            else
            {
                idDestinatario = objUtente.Ute_id_utente.ToString();
            }

            MailMessage email = new MailMessage();
            MailAddress oFrom = new MailAddress(emailMittente);
            email.From = oFrom;
            //Devo prima cancellare i valori precedenti.
            email.To.Clear();
            email.IsBodyHtml = true;
            email.Priority   = MailPriority.Normal;
            email.Subject    = "Invio / Reset password di accesso";
            email.Body       = FormattaEmail(Password, objClienti.Cli_link_taf.ToString());

            if (idDestinatario == "")
            {
                divLoginMessage.Visible = true;
                LabelMessage.InnerText  = "Errore durante il reset della password User Id non presente o errato.";
                LabelMessage.Style.Add("color", "red");
            }
            else
            {
                objUtente.Ute_id_utente = Convert.ToInt32(idDestinatario);
                objUtente.Read();

                email.To.Add(emailDestinatario);
                SendEmail(email);

                objUtente.Ute_password        = EncryptPwd(Password);
                objUtente.Ute_expiration_date = DateTime.Now.AddDays(-1);

                objUtente.Update();

                divLoginMessage.Visible = true;
                LabelMessage.InnerText  = "Password resettata correttamente, controllare la casella di posta elettronica.";
            }
        }
        catch (Exception ex)
        {
            strERRORE = ex.Message;
            ExceptionPolicy.HandleException(ex, "Propagate Policy");
        }
    }