FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour gesti贸n de licencias concurrentes en red local
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM

gesti贸n de licencias concurrentes en red local

Posted: Fri Jun 14, 2013 08:58 PM

Hola,

Como vamos a utilizar definitivamente MSVC, no vamos a poder seguir utilizando las mochilas de Safenet en modo red lan porque no tenemos los fuentes de la librer铆a que hizo Ren e Flores.

Hab铆a pensado en controlarlo con la base de datos de los usuarios que est谩 en el servidor , de modo que cuando se entra al programa al seleccionar el usuario y autentificarse, marco el campo lConectado con .T., y cuando sale del programa lo marco como .F., de modo que:
- No se pueden crear m谩s usuarios que los adquiridos. (esto no plantea problemas)
- Un usuario no puede iniciar sesi贸n m谩s de 1 vez, porque se controla con lConectado.

El problema me surge c贸mo tratar las salidas anormales del programa, bien por cuelgue, corte de luz, etc, porque en el servidor lConectado seguir谩 en .T. y no le dejar谩 volver a iniciar sesi贸n.

Si permito liberar la sesi贸n entonces nos van a enga帽ar porque el usuario se loguear谩, y luego el Administrador le liberar谩 la sesi贸n, burl谩ndose as铆 el control de las licencias en red.

驴Se os ocurre por favor alguna idea?.

Much铆simas gracias.

Un saludo

Muchas gracias. Many thanks.



Un saludo, Best regards,



Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producci贸n]



Implementando MSVC 2010, FWH64 y ADO.



Abandonando uso xHarbour y SQLRDD.
Posts: 401
Joined: Thu Oct 06, 2005 10:15 PM

Re: gesti贸n de licencias concurrentes en red local

Posted: Fri Jun 14, 2013 09:09 PM
Mira a ver si esto te sirve !!!

Code (fw): Select all Collapse
#define SP_UPDCMD_CHANGE_DEVICE_TIME 聽 聽 聽 0x21

Function SNGetHora( hHeader, aData )
Return( SFNTGetDeviceInfo( hHeader, @aData ) == 0 )

Function SNGetString( )
Return Nil

//-------------------------------------------------------------------------------------------------------
#pragma BEGINDUMP
#include <hbapi.h>

#include "SentinelKeys.h" 聽 聽 聽 聽 /* 聽Header file for the Sentinel Keys client library 聽*/
#include "SentinelKeysLicense.h" 聽/* 聽Header file for this License 聽*/

//-------------------------------------------------------------
// Obtiene la licencia
//-------------------------------------------------------------
HB_FUNC( SFNTGETLICENSE )
{
聽 SP_HANDLE license ;
聽 hb_retnl( SFNTGetLicense( DEVELOPERID, SOFTWARE_KEY, LICENSEID, 32, &license ) ) ;
聽 hb_stornl( ( LONG ) license, 1 );
}


//-------------------------------------------------------------
// Lee un string desde 聽la llave
//-------------------------------------------------------------
HB_FUNC( SFNTREADSTRING )
{
聽 聽SP_BYTE value[ 256 ];
聽 聽SP_DWORD length = hb_parnl( 4 );

聽 聽hb_retnl( ( LONG ) SFNTReadString( ( SP_HANDLE ) hb_parnl( 1 ), ( SP_DWORD ) hb_parnl( 2 ), value, length ) );
聽 聽hb_storc( value, 3 );
聽 聽hb_xfree( value );
}

//-------------------------------------------------------------
// Lee la fecha y hora de la llave
//-------------------------------------------------------------
HB_FUNC( GETDATETIME )
{

聽SP_DEVICE_INFO deviceInfo;
聽hb_retnl( SFNTGetDeviceInfo( ( SP_HANDLE ) hb_parnl( 1 ), &deviceInfo ) ) ;

聽hb_stornl( ( LONG ) deviceInfo.timeValue.year 聽 聽 聽, 2, 1 );
聽hb_stornl( ( LONG ) deviceInfo.timeValue.month 聽 聽 , 2, 2 );
聽hb_stornl( ( LONG ) deviceInfo.timeValue.dayOfMonth, 2, 3 );
聽hb_stornl( ( LONG ) deviceInfo.timeValue.hour 聽 聽 聽, 2, 4 );
聽hb_stornl( ( LONG ) deviceInfo.timeValue.minute 聽 聽, 2, 5 );
聽hb_stornl( ( LONG ) deviceInfo.timeValue.second 聽 聽, 2, 6 );
}

//-------------------------------------------------------------
// Lee un string desde 聽la llave
//-------------------------------------------------------------
HB_FUNC( SFNTGETDEVICEINFO )
{
聽 聽SPP_DEVICE_INFO deviceInfo;

聽 聽hb_retnl( SFNTGetDeviceInfo( ( SP_HANDLE ) hb_parnl( 1 ), deviceInfo ) ) ;

聽 聽hb_stornl( deviceInfo->timeValue.year 聽 聽 聽, 2, 1 );
聽 聽hb_stornl( deviceInfo->timeValue.month 聽 聽 , 2, 2 );
聽 聽hb_stornl( deviceInfo->timeValue.dayOfMonth, 2, 3 );
聽 聽hb_stornl( deviceInfo->timeValue.hour 聽 聽 聽, 2, 4 );
聽 聽hb_stornl( deviceInfo->timeValue.minute 聽 聽, 2, 5 );
聽 聽hb_stornl( deviceInfo->timeValue.second 聽 聽, 2, 6 );
}

#pragma ENDDUMP
Saludos,



Pablo Alberto Vidal

/*

------------------------------------------------------

Harbour 3.2.0, Fivewin 17.02, BCC7

------------------------------------------------------

*/
Posts: 1088
Joined: Fri Oct 07, 2005 03:33 PM

Re: gesti贸n de licencias concurrentes en red local

Posted: Fri Jun 14, 2013 09:19 PM

Hola,

puedes intentar algo asi:

ingresa el usuario -> bloqueas su registro de usuario (u otro registro por usuario)

el n煤mero de bloqueos es el n煤mero de concurrentes, si se sale del sistema creo que se quitaran los bloqueos por lo que no habria problemas por salidas por la ventana.

No lo he probado, pero me intriga si funciona, nos cuentas?

saludos

Marcelo

Posts: 120
Joined: Wed Mar 11, 2009 07:32 PM

Re: gesti贸n de licencias concurrentes en red local

Posted: Fri Jun 14, 2013 10:09 PM

Hola buenas tardes

yo lo haria asi

  al entrar el usuario      x

  lo activaria como .t.

  si entra el mismo usuario y esta la activacion como .t.  , pues no darle entrada

 si el programa se cae por x o y

lo manejeria asi

 al entrar activarlo como .t., y en un campo agregarle la hora en la que entro

  dentro del programa con un timer
  cada x tiempo   por ejemplo 1 minuto  ponerle la hora en que esta accesando el usuario

  si al momento de entra de vuelta el mismo usuario  y checas la hora actual con la ultima hora del usuario y no tiene hora asiganda y pasa de mas de un minuto quiere decir que tubo una salida inesperada


   y con eso le puedes dar acceso,,,   y si no pasa del minuto  quiere decir que ay esta el usuario todavia

saludos

Benjamin Casarrubias Moreno
Cd. Obreg贸n, Sonora, M茅xico
chino72vale@hotmail.com
Fivewin 24.04, Harbour 3.3, xharbour 1.2.1, Fivelinux, Visual Estudio 2022
Oracle Api Rest, SDK Contpaq, Facturaci贸n Electr贸nica, XML DIOT 2025
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM

Re: gesti贸n de licencias concurrentes en red local

Posted: Sat Jun 15, 2013 09:18 AM
Muchas gracias, voy a seguir investigando.

Pablo, las funciones que necesito ser铆an 茅stas:

Code (fw): Select all Collapse
function SPRORELEASELICENSE (...)
return nil


function SPROFORMATPACKET (...)
return nil



function SPROINITIALIZE (...)
return nil



function SPROFINDFIRSTUNIT(...)
return 0



function SPROSETHEARTBEAT(...)
return nil



function SPROREAD (a,b,c,d)



Muchas gracias a todos.

Saludos
Muchas gracias. Many thanks.



Un saludo, Best regards,



Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producci贸n]



Implementando MSVC 2010, FWH64 y ADO.



Abandonando uso xHarbour y SQLRDD.

Continue the discussion