public async void EnvioCorreo(TipoCorreo tipoCorreo)
        {
            var Ruta = string.Empty;
            var Cadena = new String[] {
                    string.Format("{0} {1} {2}", Nombres, ApellidoPaterno, ApellidoMaterno),
                    Codigo,
                    DateTime.Today.ToString("D"),
                    DateTime.Today.AddDays(90).ToString("D")
                };

            var Contenido = new ContenidoMail();

            switch (tipoCorreo)
            {
                case TipoCorreo.UsuarioNuevoExterno:
                    Ruta = "ErickOrlando.Seguridad.Negocio.Editables.Usuarios.PlantillaCorreo.htm";
                    Contenido.Asunto = string.Format(Properties.Resources.msgAsuntoActivacion, this.Codigo);
                    break;
                case TipoCorreo.UsuarioNuevoInterno:
                    Ruta = "ErickOrlando.Seguridad.Negocio.Editables.Usuarios.PlantillaCorreoUsuarioAD.htm";
                    Contenido.Asunto = string.Format(Properties.Resources.msgAsuntoActivacion, this.Codigo);
                    Cadena = new String[]
                    {
                        Nombres,
                        Codigo,
                        Dominio
                    };
                    break;
                case TipoCorreo.CambioClave:
                    Ruta = "ErickOrlando.Seguridad.Negocio.Editables.Usuarios.PlantillaContrasena.htm";
                    Contenido.Asunto = string.Format(Properties.Resources.msgAsuntoRestablecimiento, this.Codigo);
                    break;
            }

            try
            {
                TextReader texto = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream(Ruta));

                #region Configuracion del Correo
                var crypto = new SimpleInteroperableEncryption();

                Contenido.RemitenteMail = ConfigurationManager.AppSettings["RemitenteEmail"];
                Contenido.RemitenteNombre = ConfigurationManager.AppSettings["RemitenteNombre"];
                Contenido.Servidor = ConfigurationManager.AppSettings["SMTPServer"];
                Contenido.Puerto = int.Parse(ConfigurationManager.AppSettings["PuertoSMTP"]);
                Contenido.Credenciales = new System.Net.NetworkCredential(
                    crypto.Decrypt(ConfigurationManager.AppSettings["CredencialUser"]),
                    crypto.Decrypt(ConfigurationManager.AppSettings["CredencialPass"]));
                Contenido.UsarSSL = true;
                Contenido.CuerpoMensaje = texto.ReadToEnd();
                Contenido.ListaDestinatarios.Add(Correo);
                Contenido.ArrayValores = Cadena;
                Contenido.Html = true;
                texto.Close();
                #endregion

                #region Contenido del Correo
                using (MailMessage mail = new MailMessage())
                {
                    mail.From = new MailAddress(Contenido.RemitenteMail, Contenido.RemitenteNombre);
                    foreach (var Destinatario in Contenido.ListaDestinatarios)
                        mail.To.Add(Destinatario);
                    foreach (var Destinatario in Contenido.ListaDestinatariosCC)
                        mail.CC.Add(Destinatario);
                    foreach (var Destinatario in Contenido.ListaDestinatariosBCC)
                        mail.Bcc.Add(Destinatario);
                    var CuerpoHTML = new StringBuilder();

                    if (Contenido.ArrayValores.Length > 0)
                        CuerpoHTML.AppendFormat(Contenido.CuerpoMensaje, Contenido.ArrayValores);
                    else
                        CuerpoHTML.Append(Contenido.CuerpoMensaje);

                    CuerpoHTML.AppendLine();
                    CuerpoHTML.AppendLine();
                    CuerpoHTML.AppendLine();

                    CuerpoHTML.Append(Contenido.Html ? Contenido.PieDeCorreoHTML : Contenido.PieDeCorreo);

                    mail.Subject = Contenido.Asunto;
                    mail.Body = CuerpoHTML.ToString();
                    mail.IsBodyHtml = Contenido.Html;

                    //Limpiamos el StringBuilder
                    CuerpoHTML.Length = 0;

                    var smtp = new SmtpClient();
                    smtp.Host = Contenido.Servidor;
                    if (Contenido.Puerto.HasValue)
                        smtp.Port = Contenido.Puerto.Value;

                    if (Contenido.Credenciales != null)
                        smtp.Credentials = Contenido.Credenciales;
                    else
                        smtp.UseDefaultCredentials = true;

                    if (Contenido.Servidor.ToLower() == "localhost" || Contenido.Servidor == "127.0.0.1")
                        smtp.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;

                    if (!string.IsNullOrEmpty(Contenido.DirectorioRecojoIIS))
                        smtp.PickupDirectoryLocation = Contenido.DirectorioRecojoIIS;

                    smtp.EnableSsl = Contenido.UsarSSL;

                    //await smtp.SendMailAsync(mail);
                    await smtp.SendMailAsync(mail);
                }
                #endregion

            }
            catch (SmtpException ex)
            {
                var msg = string.Format("{0}\n{1}",
                    ex.Message, ex.InnerException == null ? string.Empty : ex.InnerException.Message);
                System.Diagnostics.Trace.WriteLine(msg);
            }

        }
        private void LoginRemoto()
        {
            using (var proxy = new ProxySeguridad())
            {
                var cryptocon = new SimpleInteroperableEncryption();

                var respuesta = proxy.Login(new RequestLogin
                {
                    AcronimoAplicacion = ConfigurationManager.AppSettings["AcronimoAplicacion"],
                    CodigoUsuario = txtUser.Text,
                    Clave = cryptocon.Encrypt(txtPass.Text),
                    Dominio = cboDominio.EditValue.ToString(),
                });

                if (!respuesta.Resultado.Success)
                    throw new SecurityException(respuesta.Resultado.Message);

                InfoUsuario.Initialize();
                InfoUsuario.Instancia.IdPerfilUsuario = respuesta.IdPerfilUsuario;

                var response = proxy.GetInfoUsuario(new RequestInfoUsuario
                {
                    IdPerfilUsuario = InfoUsuario.Instancia.IdPerfilUsuario
                });

                InfoUsuario.Instancia.NombresCompletos = response.NombresCompletos;
                InfoUsuario.Instancia.CorreoUsuario = response.Correo;
                InfoUsuario.Instancia.Dominio = response.Dominio;
                InfoUsuario.Instancia.FechaUltimoIngreso = DateTime.Today;
            }
        }