示例#1
0
        public int Register(User user)
        {
            var    keyHash       = "keyTest";
            string IdUserEncrypt = SecurityMD5.Encrypt(user.Email, keyHash, true);

            user.IdUser = IdUserEncrypt;
            var userExist = _SMContext.Users.Where(x => x.IdUser == IdUserEncrypt).FirstOrDefault();

            if (userExist == null)
            {
                user.Password    = SecurityMD5.Encrypt(user.Password, keyHash, true);
                user.DateCreated = DateTime.Now;
                _SMContext.Users.Add(user);
                var data = _SMContext.SaveChanges();
                return(data);
            }
            else
            {
                throw new Exception("Usuario ya existe");
            }
        }
示例#2
0
        public object Validar(string email, string password)
        {
            try
            {
                if (!string.IsNullOrWhiteSpace(email) && !string.IsNullOrWhiteSpace(password))
                {
                    string securityKey     = "SecurityKey for token";
                    string siteUrl         = "https://financialomejor.com/index.php";
                    string keyHash         = "keyTest";
                    string passwordEncrypt = SecurityMD5.Encrypt(password, keyHash, true);
                    //string passwordDecrypt = SecurityMD5.Decrypt(passwordEncrypt, keyHash, true);

                    //string keyEncrypt = "In brightest day, in blackest night, No evil shall escape my sight Let those who worship evil's might, Beware my power...Green Lantern's light!";
                    //string securityKeyEncrypt = SecurityMD5.Encrypt(keyEncrypt, keyHash, true);
                    //string securityKeyDecrypt = SecurityMD5.Decrypt(securityKeyEncrypt, keyHash, true);



                    User user = _SMContext.Users.Where(x => x.Email == email).FirstOrDefault();

                    if (user != null)
                    {
                        // Valida la clave
                        if (!user.Password.Equals(passwordEncrypt))
                        {
                            throw new Exception("The password is not correct.");
                        }


                        List <Claim> claims = new List <Claim>();
                        claims.Add(new Claim("IdUser", user.IdUser));
                        claims.Add(new Claim("Name", user.Name));
                        claims.Add(new Claim(ClaimTypes.Email, user.Email));



                        var key   = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(securityKey));
                        var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

                        var token = new JwtSecurityToken(
                            issuer: siteUrl,
                            audience: siteUrl,
                            claims: claims,
                            expires: DateTime.Now.AddHours(8),
                            signingCredentials: creds);

                        var data = new
                        {
                            token = new JwtSecurityTokenHandler().WriteToken(token),
                            user  = new
                            {
                                Id    = user.IdUser,
                                Name  = user.Name,
                                Email = user.Email,
                            }
                        };

                        return(data);
                    }
                    else
                    {
                        throw new Exception("The email and password could not be verified.");
                    }
                }
                else
                {
                    throw new Exception("The email and password could not be verified.");
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Error. " + ex.Message);
            }
        }