コード例 #1
0
ファイル: Usuarios.cs プロジェクト: proteo5/plata-alfa-core
        public Envelope <dynamic> Create(dynamic data, UsuariosDS usuariosDS)
        {
            try
            {
                var result = usuariosDS.GetByUsuario(data);
                if (result.Result == "ok")
                {
                    return(new Envelope <dynamic> {
                        Result = "notSuccess", Message = "El Usuario ya Existe"
                    });
                }
                else
                {
                    dynamic data2 = JsonConvert.DeserializeObject("{}");
                    data2.Nombre       = data.Nombre;
                    data2.Apellidos    = data.Apellidos;
                    data2.Email        = data.Email;
                    data2.Usuario      = data.Usuario.ToString().ToLower();
                    data2.PasswordSalt = Guid.NewGuid().ToString();
                    data2.Password     = HashHL.SHA256Of($"{data2.Usuario}123{data2.PasswordSalt}");
                    data2.IsActive     = true;
                    var response = usuariosDS.Insert(data2);

                    return(response);
                }
            }
            catch (Exception ex)
            {
                return(new Envelope <dynamic>()
                {
                    Result = "error", Message = ex.Message
                });
            }
        }
コード例 #2
0
ファイル: Usuarios.cs プロジェクト: proteo5/plata-alfa-core
        public Envelope <dynamic> UpdateProfile(dynamic data, UsuariosDS usuariosDS)
        {
            try
            {
                var userResult = this.GetProfile(data, usuariosDS);
                var user       = userResult.Data[0];

                //This is done to prevent the update of fileds other than needed
                dynamic data2 = JsonConvert.DeserializeObject("{}");
                data2.id        = user.iUsuario;
                data2.Nombre    = data.Nombre;
                data2.Apellidos = data.Apellidos;
                data2.Email     = data.Email;

                var updateResponse = usuariosDS.Update(data2);
                return(updateResponse);
            }
            catch (Exception ex)
            {
                return(new Envelope <dynamic>()
                {
                    Result = "error", Message = ex.Message
                });
            }
        }
コード例 #3
0
ファイル: Usuarios.cs プロジェクト: proteo5/plata-alfa-core
        public Envelope CreateAdmin(dynamic data, UsuariosDS usuariosDS)
        {
            try
            {
                var adminUserExist = usuariosDS.GetByUsuario(new { Usuario = "admin" });
                if (adminUserExist.Result == "empty")
                {
                    dynamic data2 = JsonConvert.DeserializeObject("{}");
                    data2.Usuario   = "admin";
                    data2.Password  = "******";
                    data2.Nombre    = "Administrator";
                    data2.Apellidos = "del Sistema";
                    data2.Email     = "";
                    data2.IsActive  = true;
                    var result = this.Create(data2, usuariosDS);

                    return(result);
                }
                else
                {
                    return(new Envelope()
                    {
                        Result = "notSuccess", Message = "Admin user already exist."
                    });
                }
            }
            catch (Exception ex)
            {
                return(new Envelope()
                {
                    Result = "error", Message = ex.Message
                });
            }
        }
コード例 #4
0
ファイル: Usuarios.cs プロジェクト: proteo5/plata-alfa-core
 public Envelope <List <dynamic> > GetAll(dynamic data, UsuariosDS usuariosDS)
 {
     try
     {
         var result = usuariosDS.GetDataSet(fields: "[iUsuario],[Usuario],[Nombre],[Apellidos],[Email],[IsActive]");
         return(result);
     }
     catch (Exception ex)
     {
         return(new Envelope <List <dynamic> >()
         {
             Result = "error", Message = ex.Message
         });
     }
 }
コード例 #5
0
ファイル: Usuarios.cs プロジェクト: proteo5/plata-alfa-core
 public Envelope <List <dynamic> > GetProfile(dynamic data, UsuariosDS usuariosDS)
 {
     try
     {
         string options = $" WHERE Usuario = '{data.AuthUser}' ";
         var    result  = usuariosDS.GetDataSet(fields: "[iUsuario],[Usuario],[Nombre],[Apellidos],[Email]", options: options);
         return(result);
     }
     catch (Exception ex)
     {
         return(new Envelope <List <dynamic> >()
         {
             Result = "error", Message = ex.Message
         });
     }
 }
コード例 #6
0
ファイル: Usuarios.cs プロジェクト: proteo5/plata-alfa-core
        public Envelope <dynamic> CambiarPass(dynamic data, UsuariosDS usuariosDS)
        {
            try
            {
                string usuario     = data.AuthUser;
                string password    = data.previoPassword;
                string options     = $" WHERE Usuario = '{usuario}' ";
                var    requestUser = usuariosDS.GetDataSet(fields: "[iUsuario],[Usuario],[Password],[PasswordSalt]", options: options);

                if (requestUser.Result != "ok")
                {
                    return(new Envelope <dynamic>()
                    {
                        Result = "notSuccess", Message = "User not found"
                    });
                }

                var dataSet = requestUser.Data.FirstOrDefault();
                if (HashHL.SHA256Of($"{usuario}{password}{dataSet.PasswordSalt}") != dataSet.Password &&
                    dataSet.Password != password)
                {
                    return(new Envelope <dynamic>()
                    {
                        Result = "notSuccess", Message = "Wrong passord"
                    });
                }
                else
                {
                    dynamic data2 = JsonConvert.DeserializeObject("{}");
                    data2.id           = dataSet.iUsuario;
                    data2.PasswordSalt = Guid.NewGuid().ToString();;
                    data2.Password     = HashHL.SHA256Of($"{usuario}{data.nuevoPassword}{data2.PasswordSalt}");;

                    var updateResponse = usuariosDS.Update(data2);
                    return(updateResponse);
                }
            }
            catch (Exception ex)
            {
                return(new Envelope <dynamic>()
                {
                    Result = "error", Message = ex.Message
                });
            }
        }
コード例 #7
0
ファイル: Usuarios.cs プロジェクト: proteo5/plata-alfa-core
        public Envelope <dynamic> Update(dynamic data, UsuariosDS usuariosDS)
        {
            try
            {
                //This is done to prevent the update of fileds other than needed
                dynamic data2 = JsonConvert.DeserializeObject("{}");
                data2.iUsuario  = data.iUsuario.ToString();
                data2.Nombre    = data.Nombre.ToString();
                data2.Apellidos = data.Apellidos.ToString();
                data2.Email     = data.Email.ToString();
                data2.IsActive  = (bool)data.IsActive;

                var result = usuariosDS.Update(data2);
                return(result);
            }
            catch (Exception ex)
            {
                return(new Envelope <dynamic>()
                {
                    Result = "error", Message = ex.Message
                });
            }
        }
コード例 #8
0
ファイル: Auth.cs プロジェクト: proteo5/plata-alfa-core
        public Envelope <dynamic> Login(dynamic data, UsuariosDS usuariosDS)
        {
            string usuario  = data.Usuario;
            string password = data.Password;
            var    response = usuariosDS.GetByUsuario(new { Usuario = usuario.ToLower() });

            if (response.Result == "empty")
            {
                return(new Envelope <dynamic>()
                {
                    Result = "notSuccess", Message = "Usuario o Password no encontrado"
                });
            }
            var dataSet = response.Data.FirstOrDefault();

            if (HashHL.SHA256Of($"{usuario}{password}{dataSet.PasswordSalt}") != dataSet.Password &&
                dataSet.Password != password)
            {
                return(new Envelope <dynamic>()
                {
                    Result = "notSuccess", Message = "Usuario o Password no encontrado"
                });
            }
            else
            {
                var signingKey = new SymmetricSecurityKey(
                    Encoding.UTF8.GetBytes(plainTextSecurityKey));
                var signingCredentials = new SigningCredentials(signingKey,
                                                                SecurityAlgorithms.HmacSha256Signature);

                var x = new List <Claim>()
                {
                    new Claim(ClaimTypes.NameIdentifier, usuario),
                    new Claim(ClaimTypes.Name, dataSet.Nombre),
                    new Claim(ClaimTypes.Surname, dataSet.Apellidos)
                };

                var claimsIdentity = new ClaimsIdentity(x, "Custom");

                var securityTokenDescriptor = new SecurityTokenDescriptor()
                {
                    Audience           = "http://localhost:61101",
                    Issuer             = "http://localhost:61101",
                    Subject            = claimsIdentity,
                    Expires            = DateTime.Now.AddHours(12),
                    SigningCredentials = signingCredentials,
                };

                var tokenHandler          = new JwtSecurityTokenHandler();
                var plainToken            = tokenHandler.CreateToken(securityTokenDescriptor);
                var signedAndEncodedToken = tokenHandler.WriteToken(plainToken);

                dynamic dataReturn = new { Token   = signedAndEncodedToken,
                                           Usuario = usuario,
                                           dataSet.Nombre,
                                           dataSet.Apellidos,
                                           dataSet.Email };
                return(new Envelope <dynamic>()
                {
                    Result = "ok", Data = dataReturn
                });
            }
        }