/// <summary> /// El usuario ya se encuentra en lapagina de Olvide Contras.. y preciona el boton chequear DNI /// /// </summary> /// <param name="dni">retorna Empleado con sus usuarios</param> /// <returns></returns> internal static EmpleadoBE ForgotPassword_checkDNI(string dni) { StringBuilder str = new StringBuilder("Con el DNI ingresado no podemos ayudarte. Comunícate con CAIS. "); str.AppendLine("CANALES DE ATENCIÓN:"); str.AppendLine("Chat(Incidentes particulares): caischat.grupokonecta.com.ar"); str.AppendLine("Telefónico(Incidentes Masivos) 54 9 351 4266616"); str.AppendLine("Mail: [email protected]"); try { EmpleadoBE empleadoBE = MeucciDAC.VirifyUser_ForgotPassword(dni); if (empleadoBE == null) { //throw new FunctionalException(1001,"El DNI no se encuentra registrado en nuestras Bases de Datos, verifícalo e intenta nuevamente o comunicarse con CAIS [email protected] y contacto 3514266616 .- "); throw new FunctionalException(1001, str.ToString()); } if (string.IsNullOrEmpty(empleadoBE.Email)) { throw new FunctionalException(1000, str.ToString()); } return(empleadoBE); } catch (Exception ex) { throw ex; } }
/// <summary> /// El usuario recibe un mail con el codigo de autorizacion, entra ala pagina (link ofrecido) y envia nuevo pàssword /// </summary> /// <param name="userName"></param> /// <param name="code"></param> /// <param name="domainName"></param> /// <param name="newPassword"></param> /// <returns></returns> //internal static ForgotPasswordRes forgotPassworChangePassword(string userName, string domainName,string code, string newPassword) //{ // ForgotPasswordRes result = new ForgotPasswordRes(); // //result = getSocioBEByUserName(userName); // var isValid = Common.verifyMd5Hash(string.Concat(userName, domainName), code); // if (isValid) // { // //User_Reset_Password(userName, newPassword, domainName); // result.Status = "OK"; // result.Message = "El reseteo se realizó exitosamente."; // } // else // { // result.Status = "Error"; // result.Message = "El código de verificación enviado no es válido o no corresponde al socio en cuestión"; // } // return result; //} /// <summary> /// El usuario recibe un mail con el codigo de autorizacion, entra ala pagina (link ofrecido) y en el init se chequea validez de url /// </summary> /// <param name="code"></param> /// <returns>EmpleadoBE</returns> internal static EmpleadoBE forgotPassworChangePassword_Verify(string code) { EmpleadoBE empleadoBE = null; string decriptedData = ""; //var isValid = Common.verifyMd5Hash(string.Concat(dni, empleadoBE.Email), code); try { decriptedData = Common.Dencrypt(code); } catch (Exception ex) { throw new Exception("El códido de seguridad es incorrecto-"); } bool isValid = false; if (decriptedData.Split(';').Length == 3) { // DNI;Email;TTL; string[] splited = decriptedData.Split(';'); string dni = splited[0].Trim(); //Obtengo la fecha de exp Int64 epocTtl = Convert.ToInt64(splited[2].Trim()); Int64 epocNow = Fwk.HelperFunctions.DateFunctions.DateTimeToUnixTimeStamp(System.DateTime.Now); if (epocTtl < epocNow) { throw new Exception("El códido de seguridad a caducado, por favor vuelva a solicitar cambio de contraseña.-"); } empleadoBE = MeucciDAC.VirifyUser_ForgotPassword(dni); if (empleadoBE != null) { empleadoBE.DNI = dni; isValid = splited[1].Trim().CompareTo(empleadoBE.Email.Trim()) == 0; } } if (isValid) { return(empleadoBE); } else { throw new Exception("El código de verificación enviado no es válido o no corresponde al socio en cuestión"); } }
/// <summary> /// El usuario solicita reestablecer contraseña /// </summary> /// <param name="dni"></param> /// <returns></returns> internal static ForgotPasswordRes forgotPassword_requets(string dni) { ForgotPasswordRes result = new ForgotPasswordRes(); var baseUrl = Common.GetBaseUrl(); //verificar si existe en el dominio //bool userExst = true;//UserExist(userName, domainName); //if (!userExst ) //{ // result.Status = "Error"; // result.Message = " <p> El usuario ingresado no existe.</p>"; // return result; //} EmpleadoBE empleadoBE = MeucciDAC.VirifyUser_ForgotPassword(dni); empleadoBE.DNI = dni; //Buscar empleado //EmpleadoBE empleadoBE = new EmpleadoBE(); //empleadoBE.email = "*****@*****.**"; //empleadoBE.ApeNom ="MOF"; //var res = getSocioBEByUserName(userName, false, false); if (string.IsNullOrEmpty(empleadoBE.Email)) { result.Status = "Error"; result.Message = " <p> El usuario ingresado no registra un correo.</p>"; return(result); } Int64 ttl = Fwk.HelperFunctions.DateFunctions.DateTimeToUnixTimeStamp(System.DateTime.Now.AddMinutes(10)); //Generate token string toEncrypt = string.Concat(empleadoBE.DNI, ";", empleadoBE.Email.Trim(), ";", ttl.ToString()); string code = Common.Encrypt(toEncrypt); //string code = Common.getMd5Hash(string.Concat(empleadoBE.DNI, empleadoBE.Email.Trim())); string file = System.Web.Hosting.HostingEnvironment.MapPath("~/files/Email_Forgot_Password.html"); try { string txt = Fwk.HelperFunctions.FileFunctions.OpenTextFile(file); StringBuilder BODY = new StringBuilder(txt); BODY.Replace("$userName$", empleadoBE.ApeNom); //BODY.Replace("$url$", "https://host/selfreset/?code=" + code); //string forgotPwd = String.Format("reset/{0}/{1}", code, empleadoBE.DNI); string forgotPwd = String.Format("reset?code={0}", HttpUtility.UrlEncode(code)); BODY.Replace("$url$", apiHelper.apiConfig.url_reseteoBase + forgotPwd); Common.SendMail(string.Concat("Solicitud de cambio de contraseña"), BODY.ToString(), empleadoBE.Email.Trim(), ""); int at = empleadoBE.Email.IndexOf('@'); var mail = "*******" + empleadoBE.Email.Substring(at - 3, empleadoBE.Email.Length - at + 3); result.Message = "Le enviaremos un email a su casilla de correo " + mail + " y " + "en el mismo encontrará un código de acceso en un enlace para que finalice el " + "proceso de cambio de contraseña"; result.Status = "Success"; } catch (Exception ex) { result.Status = "Error"; result.Message = Fwk.Exceptions.ExceptionHelper.GetAllMessageException(ex, false); } return(result); // Common.SendMail("Registracion de socio al sitio web de CELAM", string.Format(txt, userName), "*****@*****.**", emai.Trim(), ""); }