Exemplo n.º 1
0
        /// <summary>
        /// Método encargado de Generar un Nuevo Token de Autenticación de Usuario por Compania
        /// </summary>
        /// <param name="id_usuario_registro"></param>
        /// <param name="id_compania"></param>
        /// <param name="id_usuario"></param>
        /// <param name="token_nvo"></param>
        /// <returns></returns>
        public static RetornoOperacion GeneraNuevoTokenUsuario(int id_usuario_registro, int id_compania, int id_usuario, out string token_nvo)
        {
            RetornoOperacion retorno = new RetornoOperacion();

            token_nvo = "";

            //Obteniendo Clave de Encriptación (Aleatorio)
            string llave_encriptacion = Cadena.CadenaAleatoria(1, 2, 1);

            if (!llave_encriptacion.Equals(""))
            {
                //Obteniendo Método de Encriptación (Aleatorio)
                Random r = new Random();
                Encriptacion.MetodoDigestion clave_enc = (Encriptacion.MetodoDigestion)r.Next(1, 3);
                if (clave_enc != Encriptacion.MetodoDigestion.SinAsignar)
                {
                    //Generando TOKEN
                    retorno = generaTokenUsuario(id_usuario_registro, clave_enc, llave_encriptacion, id_compania, id_usuario, out token_nvo);
                }
                else
                {
                    retorno = new RetornoOperacion("La clave de encriptacion correctamente");
                }
            }
            else
            {
                retorno = new RetornoOperacion("El token no se genero correctamente");
            }

            return(retorno);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Inserta un nuevo registro Certificado
        /// </summary>
        /// <param name="id_emisor">Id de Emisor al que pertenece</param>
        /// <param name="id_sucursal">Id de sucursal del emisor</param>
        /// <param name="tipo_certificado"></param>
        /// <param name="contrasena"></param>
        /// <param name="contrasena_revocacion"></param>
        /// <param name="id_usuario"></param>
        /// <returns></returns>
        public static RetornoOperacion InsertaCertificado(int id_emisor, int id_sucursal, TipoCertificado tipo_certificado,
                                                          string contrasena, string contrasena_revocacion, int id_usuario)
        {
            //Declaramos llaves de encriptación aleatorias
            string key_contrasena            = Cadena.CadenaAleatoria(10),
                   key_contrasena_revocacion = Cadena.CadenaAleatoria(10);

            //Encriptando contraseñas
            string contrasenaEnc    = Convert.ToBase64String(Encriptacion.EncriptaCadenaAES(contrasena, key_contrasena));
            string contrasenaEncRev = Convert.ToBase64String(Encriptacion.EncriptaCadenaAES(contrasena_revocacion, key_contrasena_revocacion));

            //Inicializando parametros
            object[] param = { 1,                       0, id_emisor,        id_sucursal, (byte)tipo_certificado,    (byte)Estatus.Vigente, contrasenaEnc,
                               "",         key_contrasena, contrasenaEncRev, "",          key_contrasena_revocacion,
                               id_usuario, true,           "",               "" };

            //Ejecutando el SP
            return(CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoObjeto(nombre_procedimiento, param));
        }
Exemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="id_usuario_registro"></param>
        /// <param name="id_compania"></param>
        /// <param name="id_usuario"></param>
        /// <param name="vigencia"></param>
        /// <param name="token_nvo"></param>
        /// <returns></returns>
        public static RetornoOperacion GeneraNuevoTokenUUID(int id_usuario_registro, int id_compania, int id_usuario, int vigencia, out string token_nvo)
        {
            RetornoOperacion retorno = new RetornoOperacion();

            token_nvo = "";

            //Obteniendo Clave de Encriptación (Aleatorio)
            string llave_encriptacion = Cadena.CadenaAleatoria(1, 5, 4);

            if (!llave_encriptacion.Equals(""))
            {
                //Generando TOKEN
                retorno = generaTokenUUID(id_usuario_registro, llave_encriptacion, id_compania, id_usuario, vigencia, out token_nvo);
            }
            else
            {
                retorno = new RetornoOperacion("El token no se genero correctamente");
            }

            return(retorno);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Realiza las validaciones necesarias sobre la cuenta de usuario indicada y permite el acceso remoto a la plataforma.
        /// </summary>
        /// <param name="email">Email registrado en cuenta de usuario activa</param>
        /// <param name="contrasena">Contraseña asignada por el usuario para su inicio de sesión</param>
        /// <returns>TSDK.Base.RetornoOperacion en formato xml</returns>
        public string AutenticaUsuario(string email, string contrasena)
        {
            //Declarando objeto de retorno
            RetornoOperacion resultado;
            int idTipoReferencia = 0;

            //Validando conjunto de datos requeridos
            if (!string.IsNullOrEmpty(email) && !string.IsNullOrEmpty(contrasena))
            {
                //Instanciando usuario
                using (SAT_CL.Seguridad.Usuario u = new SAT_CL.Seguridad.Usuario(email))
                {
                    //Realizando autenticación de usuario solicitado
                    resultado = u.AutenticaUsuario(contrasena);

                    //Validando Operación Exitosa
                    if (resultado.OperacionExitosa)
                    {
                        //Obteniendo Tipo
                        idTipoReferencia = ReferenciaTipo.ObtieneIdReferenciaTipo(0, 30, "Codigo Acceso", 0, "Configuración");

                        //Obteniendo Referencia de Codigo
                        using (DataTable dtReferencias = Referencia.CargaReferencias(u.id_usuario, 30, idTipoReferencia))
                        {
                            //Validando que exista la Referencia
                            if (Validacion.ValidaOrigenDatos(dtReferencias))
                            {
                                //Recorriendo Ciclo
                                foreach (DataRow dr in dtReferencias.Rows)
                                {
                                    //Editando Referencia
                                    resultado = Referencia.EditaReferencia(Convert.ToInt32(dr["Id"]), idTipoReferencia, Cadena.CadenaAleatoria(0, 0, 4), u.id_usuario);

                                    //Terminando Ciclo
                                    break;
                                }
                            }
                            else
                            {
                                //Insertando Referencia de Usuario
                                resultado = Referencia.InsertaReferencia(u.id_usuario, 30, idTipoReferencia, Cadena.CadenaAleatoria(0, 0, 4), Fecha.ObtieneFechaEstandarMexicoCentro(), u.id_usuario);
                            }
                        }
                    }

                    //Validando Operación
                    if (resultado.OperacionExitosa)
                    {
                        //Instanciando Id de Usuario
                        resultado = new RetornoOperacion(u.id_usuario);
                    }
                }
            }
            else
            {
                //Instanciando Excepción
                resultado = new RetornoOperacion(string.Format("{0} {1}", string.IsNullOrEmpty(email) ? "Falta email." : "", string.IsNullOrEmpty(contrasena) ? "Falta contraseña." : ""));
            }

            //Devolvemos Resultado
            return(resultado.ToXMLString());
        }