コード例 #1
0
        public TR_usuario ExisteUsuario(TR_acceso acceso)
        {
            var resultado = db.USUARIO.FirstOrDefault(x => x.USUARIO1 == acceso.RUN);
            var contrasenaDesencriptada = encriptar.Desencriptar(resultado.CONTRASENA);

            if (acceso.RUN == resultado.USUARIO1 && acceso.CONTRASENA == contrasenaDesencriptada)
            {
                var emp = db.EMPLEADO.FirstOrDefault(x => x.RUN_EMPLEADO == acceso.RUN);
                var cli = db.CLIENTE.FirstOrDefault(x => x.RUN_CLIENTE == acceso.RUN);
                if (emp != null)
                {
                    TR_usuario u = new TR_usuario
                    {
                        RUN_CLIENTE         = emp.RUN_EMPLEADO,
                        TIPO_USUARIO_CODIGO = emp.USUARIO1.TIPO_USUARIO_CODIGO,
                        APELLIDO_MATERNO    = emp.APELLIDO_MATERNO,
                        APELLIDO_PATERNO    = emp.APELLIDO_PATERNO,
                        EMAIL            = emp.EMAIL,
                        DIRECCION        = emp.DIRECCION,
                        COMUNA_ID        = emp.COMUNA_ID,
                        FECHA_NACIMIENTO = emp.FECHA_NACIMIENTO,
                        TELEFONO         = emp.TELEFONO,
                        NOMBRE           = emp.NOMBRE,
                        ESTADO_ID        = emp.ESTADO_ID,
                        CARGO            = emp.CARGO,
                        NUMERO_SUCURSAL  = emp.NUMERO_SUCURSAL,
                    };
                    return(u);
                }

                if (cli != null)
                {
                    TR_usuario u = new TR_usuario
                    {
                        RUN_CLIENTE         = cli.RUN_CLIENTE,
                        TIPO_USUARIO_CODIGO = cli.USUARIO1.TIPO_USUARIO_CODIGO,
                        APELLIDO_MATERNO    = cli.APELLIDO_MATERNO,
                        APELLIDO_PATERNO    = cli.APELLIDO_PATERNO,
                        EMAIL            = cli.EMAIL,
                        DIRECCION        = cli.DIRECCION,
                        COMUNA_ID        = cli.COMUNA_ID,
                        FECHA_NACIMIENTO = cli.FECHA_NACIMIENTO,
                        TELEFONO         = cli.TELEFONO,
                        NOMBRE           = cli.NOMBRE,
                        ESTADO_ID        = cli.ESTADO_ID
                    };
                    return(u);
                }
            }
            return(null);
        }
コード例 #2
0
        public void ModificarPassUsuario(string usuario_sistema, string passAnterior, string passNueva)
        {
            //busca info del usuario
            try
            {
                IDAOUsuario iDaoUsuario = new DAOUsuario();

                byte[] usr    = Convert.FromBase64String(usuario_sistema); // obtiene usuario
                byte[] pws    = Convert.FromBase64String(passAnterior);    // obtiene password
                byte[] pwsNew = Convert.FromBase64String(passNueva);       //obtiene password nueva

                RespuestaBD resp = iDaoUsuario.EditarPassword(
                    Encriptacion.Desencriptar(usr),
                    Encriptacion.EncriptarContraseña(Encriptacion.Desencriptar(pwsNew), Encriptacion.Desencriptar(usr)),
                    Encriptacion.EncriptarContraseña(Encriptacion.Desencriptar(pws), Encriptacion.Desencriptar(usr))
                    );
                if (resp.EXISTE_ERROR)
                {
                    throw new Exception(resp.MENSAJE);
                }
            }
            catch (Exception ex)
            {
                throw new Exception(new Util().ObtenerMsjExcepcion(ex));
            }
        }
コード例 #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            gestor       = new GestorUsuario();
            encriptacion = new Encriptacion();

            if (Request.QueryString["usuario"] != null)
            {
                hfNuevoRegistro.Value = encriptacion.Desencriptar(Request.QueryString["usuario"].Replace(' ', '+'));
                Usuario usuario = gestor.BuscarPorNombreDeUsuario(hfNuevoRegistro.Value);
                usuario.Estado = true;
                if (usuario != null)
                {
                    gestor.UpdateUsuario(usuario);
                }
            }
            if (!Page.IsPostBack)
            {
                if (SessionUsuario != null)
                {
                    lblLogin.Text       = SessionUsuario.NombreUsuario;
                    li_Ingresar.Visible = false;
                    li_Login.Visible    = true;
                    rolId = SessionUsuario.RolId;
                    if (rolId == 1)
                    {
                        hrefAdministracion.Attributes["href"] = "/AdministracionSolicitudesYConexiones.aspx";
                    }
                }
            }
        }
コード例 #4
0
ファイル: NegocioSistema.cs プロジェクト: ChristianCC/SSToken
 public List <VMPermisoItem> ObtenerPermisosItemsUsuario(string usuario)
 {
     try
     {
         IDAOPermisosItem iDaoPermisos = new DAOPermisosItem();
         RespuestaBD      resp         = iDaoPermisos.ObtenerItemsUsuarioRol(Encriptacion.Desencriptar(Convert.FromBase64String(usuario)));
         if (resp.EXISTE_ERROR)
         {
             throw new Exception(resp.MENSAJE);
         }
         else
         {
             List <VMPermisoItem> lista = new List <VMPermisoItem>();
             if (resp.dataSet.Tables.Count > 0)
             {
                 DataTable datos = resp.dataSet.Tables[0];
                 lista = (from x in datos.AsEnumerable()
                          select new VMPermisoItem()
                 {
                     Delete = x.Field <bool>("fl_delete"),
                     IdItemModulo = x.Field <int>("fi_id_item_modulo"),
                     IdUsuarioPermisos = x.Field <int>("fi_id_usuario_permisos"),
                     Nombre = x.Field <string>("fc_desc_item"),
                     Write = x.Field <bool>("fl_write")
                 }).ToList();
             }
             return(lista);
         }
     }
     catch (Exception ex)
     {
         throw new Exception(new Util().ObtenerMsjExcepcion(ex));
     }
 }
コード例 #5
0
        public RespuestaSimple Login(string usuario, string password)
        {
            // Ubico el usuario
            var q = from p in db.Usuarios
                    where p.UsuEmail == usuario
                    orderby p.UsuEmail
                    select new Models.Usuarios
            {
                UsuarioId   = p.UsuarioId,
                UsuEmail    = p.UsuEmail,
                UsuNom      = p.UsuNom,
                UsuPassword = p.UsuPassword,
                UsuTipo     = p.UsuTipo
            };

            // Obtiene el primer registro
            var r = q.FirstOrDefault();

            // Si no encontró, retorno
            if (r == null)
            {
                return(new RespuestaSimple(401, "Usuario y/o contraseña incorrectos."));
            }

            // Si el usuario no es administrador, también retorno
            if (r.UsuTipo != "ADM")
            {
                return(new RespuestaSimple(401, "Usuario no autorizado."));
            }

            // Desencripto la contraseña usando la clave
            // Si no coinciden, retorno
            // También permito entrar si la contraseña es igual al usuario (inicialmente)
            if (Encriptacion.Desencriptar(r.UsuPassword) != password &&
                (r.UsuPassword != r.UsuEmail || r.UsuPassword != password))
            {
                return(new RespuestaSimple(401, "Usuario y/o contraseña incorrectos."));
            }

            // Usuario correcto. Creo un token JWT y lo devuelvo
            var token = Encriptacion.Encriptar(Guid.NewGuid().ToString());

            // Elimina las sesiones expiradas
            new Services.Sesiones(db).EliminarExpiradas();

            // Creo la sesión en la tabla y almaceno el token
            new Services.Sesiones(db).Insertar(new Models.Sesiones {
                SesionId     = token,
                SesionExpira = DateTime.Now.AddHours(1),
                UsuarioId    = r.UsuarioId,
                SesionTipo   = "local"
            });

            // Retorno OK y el Token
            return(new RespuestaSimple(200, token));
        }
コード例 #6
0
        public string IniciarSesion(string usuario, string llave, string ip, string sistema, bool cerrarSesiones)
        {
            try
            {
                Exception excep = new Exception("");
                if (llave.Length > 0)
                {
                    byte[] usr = Convert.FromBase64String(usuario);
                    byte[] pws = Convert.FromBase64String(llave);


                    llave = Encriptacion.EncriptarContraseña(Encriptacion.Desencriptar(pws), Encriptacion.Desencriptar(usr));
                    //Obtiene llave del usuario
                    IDAOSistema iDaoSis = new DAOSistema();

                    RespuestaBD resp = iDaoSis.IniciarSesion(Encriptacion.Desencriptar(usr),
                                                             llave, ip, sistema, cerrarSesiones);
                    if (resp.EXISTE_ERROR)
                    {
                        excep = new Exception(resp.MENSAJE);
                        excep.Data.Add("code", resp.respuesta);
                        throw excep;
                    }
                    else
                    {
                        return(this.GenerarToken(Encriptacion.Desencriptar(usr)));
                    }
                }
                else
                {
                    excep = new Exception("Constraseña no especificada");
                    excep.Data.Add("code", 1);
                    throw excep;
                }
            }
            catch (Exception ex)
            {
                Exception excep = new Exception(new Util().ObtenerMsjExcepcion(ex));
                if (ex.Data["code"] == null)
                {
                    excep.Data.Add("code", 1);//Error no especificado
                }
                else
                {
                    excep.Data.Add("code", ex.Data["code"]);
                }
                throw excep;
            }
        }
コード例 #7
0
        public void ResetPassUsuario(string usuario_sistema)
        {
            //busca info del usuario
            try
            {
                IDAOUsuario iDaoUsuario = new DAOUsuario();
                string      usuario     = Encriptacion.Desencriptar(Convert.FromBase64String(usuario_sistema));
                RespuestaBD resp        = iDaoUsuario.ObtenerListaUsuarios(null, usuario);
                if (resp.EXISTE_ERROR)
                {
                    throw new Exception(resp.MENSAJE);
                }
                else
                {
                    List <VMUsuario> lista = new List <VMUsuario>();
                    if (resp.dataSet.Tables.Count > 0)
                    {
                        if (resp.dataSet.Tables[0].Rows.Count > 0)
                        {
                            //el usuario existe
                            //Genera nueva contraseña

                            string password = Encriptacion.EncriptarContraseña(
                                usuario,
                                usuario);
                            resp = iDaoUsuario.EditarPassword(usuario, password);
                            if (resp.EXISTE_ERROR)
                            {
                                throw new Exception(resp.MENSAJE);
                            }
                        }
                        else
                        {
                            throw new Exception("No se encontro registro de este usuario");
                        }
                    }
                    else
                    {
                        throw new Exception("No se encontro registro de este usuario");
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(new Util().ObtenerMsjExcepcion(ex));
            }
        }
コード例 #8
0
        /// <summary>
        /// Validate Function
        /// </summary>
        /// <param name="value"></param>
        /// <param name="ObjectInstance"></param>
        /// <returns></returns>
        public static bool PasswordValidar(object value, object ObjectInstance)
        {
            Gq_usuariosDto data = (Gq_usuariosDto)ObjectInstance;

            if (string.IsNullOrWhiteSpace(data.Clave) == false)
            {
                if (data.Clave.Equals(data.ClaveChequed))
                {
                    return(true);
                }
                else if (Encriptacion.Desencriptar(data.Clave, Constantes.CLAVE_ENCRIPTACION).Contains("Wrong Input. ") == false)
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #9
0
        public ActionResult ValidarEmail(String Token)
        {
            Encriptacion objEncriptacion = new Encriptacion();
            int          UsuarioId       = Convert.ToInt32(objEncriptacion.Desencriptar(Token, ConfigurationManager.AppSettings["IV"]));
            Usuario      objUsuario      = _UsuarioService.UsuarioPorID(UsuarioId);

            if (objUsuario == null)
            {
                PostMessage(MessageType.Error, "El usuario no existe.");
            }
            else if (objUsuario.Estado != "REG")
            {
                PostMessage(MessageType.Error, "El usuario ya se encuentra activo.");
            }
            else
            {
                objUsuario.Estado = "ACT";
                _UsuarioService.UpdateEstado(objUsuario);
                PostMessage(MessageType.Success, "El usuario se activó correctamente. Por favor, ingrese a la aplicación.");
            }

            return(View());
        }
コード例 #10
0
        public VMUsuario RegistrarUsuario(string nombre, string apellidoMaterno, string apellidoPaterno, string celular, string correo,
                                          string extension, int idEstatus, string password, string usuario_sistema)
        {
            try
            {
                string error = string.Empty;
                if (string.IsNullOrEmpty(usuario_sistema))
                {
                    error += "- Debes registrar un Usuario." + "<br />";
                }
                else if (usuario_sistema.IndexOf(' ') >= 0)
                {
                    error += "- El Usuario no puede contener espacios." + "<br />";
                }
                if (string.IsNullOrEmpty(password))
                {
                    error += "- Debes registrar una contraseña." + "<br />";
                }
                if (string.IsNullOrEmpty(nombre))
                {
                    error += "- Debes registrar un nombre." + "<br />";
                }
                if (string.IsNullOrEmpty(correo))
                {
                    error += "- Debes registrar un correo." + "<br />";
                }
                if (string.IsNullOrEmpty(error))
                {
                    byte[] usr = Convert.FromBase64String(usuario_sistema);
                    byte[] pws = Convert.FromBase64String(password);


                    VMUsuario   Usuario     = new VMUsuario();
                    IDAOUsuario iDaoUsuario = new DAOUsuario();
                    RespuestaBD resp        = iDaoUsuario.RegistrarUsuario(
                        Encriptacion.Desencriptar(usr),
                        Encriptacion.EncriptarContraseña(Encriptacion.Desencriptar(pws), Encriptacion.Desencriptar(usr)),
                        nombre, apellidoPaterno,
                        apellidoMaterno, correo, celular, extension);
                    if (resp.EXISTE_ERROR)
                    {
                        throw new Exception(resp.MENSAJE);
                    }
                    else
                    {
                        Usuario = new VMUsuario()
                        {
                            Apellido_materno   = apellidoMaterno,
                            Apellido_paterno   = apellidoPaterno,
                            Celular            = celular,
                            Correo             = correo,
                            Extension          = extension,
                            IdEstatus          = idEstatus,
                            Nombre             = nombre,
                            Usuario_sistema    = usuario_sistema,
                            FechaDeRegistro    = (DateTime)resp.dataSet.Tables[0].Rows[0]["fd_fecha_registro"],
                            FechaDeVencimiento = (DateTime)resp.dataSet.Tables[0].Rows[0]["fd_fecha_vencimiento"],
                            Password           = string.Empty
                        };
                    }
                    return(Usuario);
                }
                else
                {
                    throw new Exception(error);
                }
            }
            catch (Exception ex)
            {
                throw new Exception(new Util().ObtenerMsjExcepcion(ex));
            }
        }
コード例 #11
0
        private void btnDesencriptar_Click(object sender, EventArgs e)
        {
            string res = Encriptacion.Desencriptar(Convert.FromBase64String(tbDesEncripta.Text));

            tbDesEncriptaResultado.Text = res;
        }
コード例 #12
0
 public string Desencriptar(string contraseña)
 {
     return(cifrar.Desencriptar(contraseña));
 }
コード例 #13
0
        private void IniciarSesion(string usuario, string llave, string ip, string sistema)
        {
            try
            {
                string respuesta = new NegocioSistema(null, null).IniciarSesion(
                    Convert.ToBase64String(Encriptacion.Encriptar(usuario)),
                    Convert.ToBase64String(Encriptacion.Encriptar(llave)),
                    ip,
                    sistema,
                    chkCerrarSesiones.Checked
                    );
                string    data = Encriptacion.Desencriptar(Convert.FromBase64String(respuesta));
                string [] info = data.Split(';');

                //Sistema.USUARIO = tbUsuario.Text;
                // Sistema.PASS = tbPass.Text;
                // Sistema.NOMBRE_USUARIO = us.Nombre;
                // Sistema.NOMBRE_USUARIO = info[0];
                new Sistema().TOKEN_SESION = respuesta;
                if (string.IsNullOrEmpty(paramEncrip["nurl"]))//no definiio redireccion
                {
                    Response.Redirect(MapeoSistema.HOME + "?tkn=" + HttpUtility.UrlPathEncode(respuesta), false);
                }
                else
                {
                    string nurl      = paramEncrip["nurl"];
                    byte[] nurlDecod = Convert.FromBase64String(nurl);
                    string nurlDes   = Encriptacion.Desencriptar(nurlDecod);
                    //Valida que la url sea valida para este usuario
                    Entidades.Serv_Token.RespuestaSesion r = new NegocioSistema(null, null).ValidarAcceso(Convert.ToBase64String(Encriptacion.Encriptar(usuario))
                                                                                                          , nurlDes);
                    if (r.Code == "403")//Acceso denegado
                    {
                        Response.Redirect(MapeoSistema.ERROR_403, false);
                    }
                    else
                    {
                        Response.Redirect(nurlDes + "?tkn=" + HttpUtility.UrlPathEncode(respuesta), false);
                    }
                }
            }
            catch (Exception ex)
            {
                if (ex.Data["code"] != null)
                {
                    switch (ex.Data["code"].ToString())
                    {
                    case "1":     //error no especificado
                    case "2":
                    case "3":     //Cerrar todas las sesiones
                        MostrarMensajeError("Error: " + ex.Message);
                        break;

                    case "5":
                        MuestraFormularioContraseña(ex.Data["code"].ToString(), ex.Message, usuario);
                        break;
                    }
                }
                else
                {
                    MostrarMensajeError("Error: " + ex.Message);
                }
            }
        }
コード例 #14
0
 public static string Desencriptar(string value)
 {
     return(Encriptacion.Desencriptar(value, CLAVE_ENCRIPTACION));
 }