/// <summary> /// Inicia Sesión el Usuario /// </summary> /// <param name="contrasena">Contraseña proporcionada por el Usuario</param> /// <returns></returns> public RetornoOperacion AutenticaUsuario(string contrasena) { //Declaramos Resultado RetornoOperacion resultado = new RetornoOperacion(); //Validamos que exista Usuario if (this._id_usuario > 0) { //Validando asignación de un perfil de usuario activo using (PerfilSeguridadUsuario perfilActivo = PerfilSeguridadUsuario.ObtienePerfilActivo(this._id_usuario)) { //Si hay perfil activo if (perfilActivo.id_perfil > 0) { //Obtenemos Contraseña proporcionada contrasena = Encriptacion.CalculaHashCadenaEnBase64(contrasena, Encriptacion.MetodoDigestion.SHA1); //Comparamos contraseña actual con la proporcionada if (this._contrasena == contrasena) { //Actualizamos sesiones que ya han expirado UsuarioSesion.FinalizaSesionesExpiradas(this.id_usuario); /*Validamos el No. de Sesiones Disponibles para el Usuario comparando las que se encuentran actualmente Activas. * Sesiones Disponible = 0 sin limite de sesiones */ if ((UsuarioSesion.ObtieneNumeroSesionesActivas(this._id_usuario) < this._sesiones_disponibles) || (this.sesiones_disponibles == 0)) { //Regresamos Id de Usuario resultado = new RetornoOperacion(this._id_usuario); } else { //Mostrando Mensaje resultado = new RetornoOperacion("Ha alcanzado el número de sesiones permitadas o no ha cerrado correctamente su última sesión."); } } else { //Mostramos Error resultado = new RetornoOperacion("Verifique usuario y/o contraseña."); } } //Si no hay perfil de seguridad activo else { resultado = new RetornoOperacion("No cuenta con un perfil de seguridad activo, contacte con el administrador del sitio."); } } } else { resultado = new RetornoOperacion("No existe un usuario con los datos proporcionados."); } //Devolvemos Resultado return(resultado); }
private void bajaContacto() { //Creación del objeto retorno RetornoOperacion retorno = new RetornoOperacion(); //Inicializando Bloque Transaccional using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Invoca al constructor de la clase y asigna el valor de la variable de session id_registro. using (SAT_CL.ControlPatio.OperadorPatio c = new SAT_CL.ControlPatio.OperadorPatio((int)Session["id_registro"])) { //Valida si el registro existe. if (c.id_operador_patio > 0) { //Asigna al objeto retorno los datos del usuario que realizo el cambio de estado del registro (Deshabilitó) retorno = c.DeshabilitaOperador(((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); //Validando Operación Exitosa if (retorno.OperacionExitosa) { //Instanciando registro de Usuario - Compania using (SAT_CL.Seguridad.UsuarioSesion us = new SAT_CL.Seguridad.UsuarioSesion(c.id_operador_patio)) { //Validando que Existe el Registro if (us.id_usuario > 0) { //Deshabilitando retorno = c.DeshabilitaOperador(((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); //Validando Operación Exitosa if (retorno.OperacionExitosa) { //Completando Transacción trans.Complete(); } //Mensaje de que la operación de deshabilitar registros se realizo correctamente. TSDK.ASP.ScriptServer.MuestraNotificacion(this, retorno, ScriptServer.PosicionNotificacion.AbajoDerecha); } } } } } } //Valida si la operación se realizo correctamente. if (retorno.OperacionExitosa) { //Asigna el valor de estado lectura a la variable de session estatus Session["estatus"] = Pagina.Estatus.Nuevo; //Asigna el valor 0 a la variable de session id_registro Session["id_registro"] = 0; //invoca al método inicializaForma(). inicializaForma(); } }
/// <summary> /// Método encargado de Finalizar las Sesiones de un Usuario, excepto la Actual /// </summary> /// <returns></returns> public RetornoOperacion FinalizaSesionesUsuario() { //Declaramos Objeto Resultante RetornoOperacion result = new RetornoOperacion(); //Inicializando arreglo de parámetros para consulta object[] param = { 6, this._id_usuario_sesion, this._id_usuario, 0, 0, null, null, null, 0, "", "", 0, false, "", "" }; //Instanciando Usuario Sesión Excepción using (DataSet ds = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoDataSet(_nombre_stored_procedure, param)) { //Validando Origen de Datos if (Validacion.ValidaOrigenDatos(ds, "Table")) { //Inicializando Bloque Transaccional using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Recorriendo Ciclo foreach (DataRow dr in ds.Tables["Table"].Rows) { //Instanciando Sesión using (UsuarioSesion us = new UsuarioSesion(Convert.ToInt32(dr["Id"]))) { //Validando que exista la Sesión if (us.habilitar) { //Terminando Sesión result = us.TerminarSesion(); //Validando si la Operación no es Exitosa if (!result.OperacionExitosa) { //Terminando Ciclo break; } } else { //Instanciando Excepción result = new RetornoOperacion("No existe la Sesión"); } } } //Validando Operación Exitosa if (result.OperacionExitosa) { //Instanciando Positivo el Retorno result = new RetornoOperacion(this._id_usuario_sesion); //Completando Transacción trans.Complete(); } } } else { //Instanciando Excepción result = new RetornoOperacion(this._id_usuario_sesion, "No existen Sesiones Activas", true); } } //Devolvemos resultado return(result); }