/// <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); }
/// <summary> /// Método encargado de Insertar los Perfiles de Seguridad /// </summary> /// <param name="id_perfil">Perfil de Seguridad</param> /// <param name="id_usuario">Usuario</param> /// <param name="id_usuario_act">Usuario que Actualiza el Registro</param> /// <returns></returns> public static RetornoOperacion InsertaPerfilSeguridadUsuario(int id_perfil, int id_usuario, int id_usuario_act) { //Declarando Objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Armando Arreglo de Parametros object[] param = { 1, 0, id_perfil, id_usuario, true, id_usuario_act, true, "", "" }; //Inicializando Bloque Transaccional using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Instanciando Perfil de Usuario using (PerfilSeguridadUsuario psu = PerfilSeguridadUsuario.ObtienePerfilActivo(id_usuario)) { //Validando que Existe el Perfil if (psu._id_perfil_usuario > 0) { //Editando Perfil result = psu.EditaPerfilSeguridadUsuario(psu.id_perfil, psu.id_usuario, false, id_usuario_act); //Validando que la Operación fuese Exitosa if (result.OperacionExitosa) { //Ejecutando SP result = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoObjeto(_nom_sp, param); } } else { //Ejecutando SP result = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoObjeto(_nom_sp, param); } //Validando que las Operaciones fueran Exitosas if (result.OperacionExitosa) { //Completando Transacción trans.Complete(); } } } //Devolviendo Resultado Obtenido return(result); }