DEFINE CLASS c1 as session OLEPUBLIC * lAuthorized = .F. lAuthorized = .T. && For developement cPassword = PADR(TRANSFORM(156789*6543278*4567),16) && 16 char key cSessionID = '' lOpen = .T. PROCEDURE Init WAIT WINDOW 'I am in '+CURDIR() IF NOT 'VFPENCRYPTION' $ SET("Library") * SET LIBRARY TO VFPEncryption.FLL ADDITIVE ENDIF This.cSessionId = TRANSFORM(RAND()*10000000000000000) PROCEDURE Error LPARAMETERS nError, cMethod, nLine MESSAGEBOX('nError = '+TRANSFORM(nError)+ ' cMethod = '+cMethod + ' nLine = '+TRANSFORM(nLine)) PROCEDURE Authorize1 RETURN This.EncryptEncode( PADR(This.cSessionID + CHR(0),50) ) PROCEDURE Authorize2 LPARAMETERS tcMessage LOCAL lcPlainMessage,lcSessionID lcPlainMessage = This.DecodeDecrypt(tcMessage) lcSessionID = LEFT(lcPlainMessage,AT(CHR(0),lcPlainMessage)-1-10) IF This.lOpen AND This.cSessionID = lcSessionId This.lAutorized = .T. ENDIF This.lOpen = .F. RETURN PROCEDURE EncryptEncode LPARAMETERS tcText RETURN STRCONV(Encrypt(tcText,This.cPassword,0),13) PROCEDURE DecodeDecrypt LPARAMETERS tcText RETURN Decrypt(STRCONV(tcText,14)) PROCEDURE MyDoCmd(cCmd as string,p2 as Variant,p3 as Variant,p4 as Variant,p5 as Variant) helpstring 'Execute a command|%2' IF This.lAutorized &cCmd ENDIF PROCEDURE MyEval(cExpr as string,p2 as Variant,p3 as Variant,p4 as Variant,p5 as Variant) helpstring 'Evaluate an expression|%2' RETURN IIF(This.lAutorized,&cExpr,'') ENDDEFINE