/// <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); }
/// <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)); }
/// <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); }
/// <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()); }