public async Task ResetPasswordByTokenAsync(ResetPasswordDTO model)
        {
            var decryptedToken =
                Encrypting.Decrypt(HttpUtility.UrlDecode(model.Token), _configuration["EncryptionKey"], true);
            var tokenParts = decryptedToken.Split("|");

            if (tokenParts.Length < 2)
            {
                throw new InvalidDataException("TokenViewModel is not valid");
            }
            var email      = tokenParts[0];
            var expireTime = tokenParts[1];

            if (DateTime.Compare(DateTime.UtcNow, DateTime.Parse(expireTime)) == 1)
            {
                throw new TokenExpiredException("TokenViewModel is expired");
            }

            var user = await(await _userRepository.GetAllAsync(u => u.Email == email)).FirstOrDefaultAsync();

            if (user == null)
            {
                throw new EntityNotExistException("This user is not exist");
            }

            user.Password = _hashMd5Service.GetMd5Hash(model.Password);
            await _userRepository.UpdateAsync(user);
        }
Beispiel #2
0
        public JsonResult LoginUser(string user, string pass)
        {
            try
            {
                EncryptPass = ServiceEncryp.Encryp(pass);

                DataTable dt = UserService.spGetUse(user);

                if (dt.Rows.Count == 0)
                {
                    data.message = "las Credenciales ingresadas no son validas";
                    data.status  = "error";
                    return(Json(data, JsonRequestBehavior.AllowGet));
                }
                var PassDB        = dt.Rows[0]["password"].ToString();
                var descripPassDB = ServiceEncryp.Decrypt(PassDB);

                if (pass == PassDB || pass == descripPassDB)
                {
                    System.Web.HttpContext.Current.Session["idUser"] = dt.Rows[0]["id"];
                    System.Web.HttpContext.Current.Session["email"]  = dt.Rows[0]["email"];
                    System.Web.HttpContext.Current.Session["active"] = dt.Rows[0]["active"];

                    var active = Convert.ToInt32(System.Web.HttpContext.Current.Session["active"]);
                    var email  = System.Web.HttpContext.Current.Session["email"];

                    SecurityHelper.GenerateAuthentication(user);

                    if (active == 0)
                    {
                        data.message = "El usuario se encuentra inactivo";
                        data.status  = "error";
                        return(Json(data, JsonRequestBehavior.AllowGet));
                    }

                    SecurityHelper.GenerateAuthentication(user);

                    data.message = "las Credenciales validas";

                    data.url = Url.Action("Principal", "PaperBag");
                }
                else
                {
                    data.message = "Contraseña Invalida";
                    data.status  = "error";
                    return(Json(data, JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception ex)
            {
                data.message = ex.Message;
                data.status  = "error";
                return(Json(data, JsonRequestBehavior.AllowGet));
            }

            return(Json(data, JsonRequestBehavior.AllowGet));
            //return Json(new { url = Url.Action("Proyect", "ControlSheet") });
        }
Beispiel #3
0
 public bool CheckPassword(string password)
 {
     try
     {
         var res = Encrypting.Decrypt(Password, PrivateKey);
         return(res.Result.Equals(password));
     }
     catch (Exception)
     {
         return(false);
     }
 }
Beispiel #4
0
        private User InfoDecryptor(User user)
        {
            user.Firstname = Crypto.Decrypt(user.Firstname);
            user.Lastname  = Crypto.Decrypt(user.Lastname);
            user.Address   = Crypto.Decrypt(user.Address);
            user.Zipcode   = Crypto.Decrypt(user.Zipcode);
            user.Place     = Crypto.Decrypt(user.Place);
            user.Phone     = Crypto.Decrypt(user.Phone);
            user.Email     = Crypto.Decrypt(user.Email);

            //GET FIELD NAME AND VALUE!!!
            //FieldInfo[] fields = user.GetType().GetFields(BindingFlags.Instance | BindingFlags.NonPublic);
            //for (int i = 0; i < fields.Length; i++)
            //{
            //    var FieldValue = fields[i].GetValue(user).ToString();
            //    string FullFieldName = fields[i].Name;
            //    string TrimmedFieldName = FullFieldName.Remove(FullFieldName.IndexOf('>')).Substring(FullFieldName.IndexOf('<') + 1);
            //}

            return(user);
        }