public ActionResult RecuperarClave(string id) { try { SistemaRepository sr = new SistemaRepository(); UsuarioView uv = new UsuarioView(); UsuarioRepository ur = new UsuarioRepository(); string nombreUsuario = Request.Form["txtUsuario"]; Usuario u = ur.Obtener(nombreUsuario); if (u == null) { uv.Mensaje = "El usuario especificado no existe en el sistema."; } else { string correo = u.Correo; string token = Guid.NewGuid().ToString(); if (ur.ActualizarToken(u.Id, token)) { SmtpClient client = new SmtpClient(); string correoCMS = sr.Obtener().CorreoCMS; MailAddress maDesde = new MailAddress(correoCMS, "Configuration Management System"); MailMessage mm = new MailMessage(); mm.From = maDesde; mm.To.Add(u.Correo); mm.Subject = "Recuperación de Clave"; mm.IsBodyHtml = true; StringBuilder sb = new StringBuilder(); string url = Url.Action("ResetearClave", "Usuario", null, Request.Url.Scheme, null); sb.Append("Para recuperar su clave por favor haga click en el siguiente vínculo<br>"); sb.Append("<a href='" + url + "/" + token + "'>Recuperar clave</a>"); mm.Body = sb.ToString(); client.Send(mm); uv.Mensaje = "Se ha enviado a su correo (" + correo + ") un mensaje de recuperación de clave."; } else { uv.Mensaje = "El usuario especificado no existe en el sistema."; } } return(View("Mensaje", uv)); } catch (Exception ex) { return(View("Mensaje", ex.Message)); } }