To integrate Visual Guard in your PowerBuilder application you have to:
In order to use Visual Guard, you must add references to Visual Guard assemblies:
If the library does not appear in this list you can use the Browse tab and select them in the directory
For connecting to Visual Guard Server you indicate in this file the URL and the Number of the Port of the server and all other parameters for Visual Guard.
Example of file configuration: myconfigfile.cfg
[SECURITY] VGServer=http://127.0.0.1:29000|http://127.0.0.1:29001 mergeRoles=Y supportedAuthenticationModes=VG|AD|WBC dynamicBrowser=Y silentMode=Y trace=Y
There is one main class in Visual Guard:
You must load the security before all other code. In this case you will be sure to set the security of all the objects of your application. Visual Guard will not automatically set the security of this window. In this case, you must set the security of this window after loading the permissions of the user (see the method vg_n_cst_vgmanager.SetSecurity ).
All communication between Visual Guard and your application takes place through the “Security manager”.
This Manager is the User Object “vge_n_cst_vgmanager” in the PBL “Novalys.VisualGuard.Security.pbrte.pbl”.
It provides authentication and authorization features and it applies the security on the application.
The security manager has to be declared as global variable or an Instance variable in a global object.
Example:
// Declare the security manager as global variable
vge_n_cst_vgmanager guo_vgmanager
For PFC application declare the security manager as Instance variable in the Object “n_cst_appmanager” in the library “pfeapsrv.pbl”.
You have to instantiate the security manager when setting up your application (for example, in the open event of the application).
Example:
// Create the security manager
guo_vgmanager = CREATE vge_n_cst_vgmanager
For the PFC, create the security manager in the Constructor Event of the object “n_cst_appmanager” in the library “pfeapsrv.pbl”.
You have to destroy the security manager before stopping the application (the close event of the application, for example).
Example:
// Destroy the security manager
if IsValid(guo_vgmanager) then Destroy (guo_vgmanager)
For the PFC, destroy the security manager in the Destructor Event of the object “n_cst_appmanager” in the library “pfeapsrv.pbl”.
Example:
// Declare configuration file with your parameters to connect at Visual Guard Server
guo_vgmanager .of_setconfigfile ("myconfigfile.cfg")
// Declare the trace file if you use tracing action execution in your application
guo_vgmanager .of_settracefile ("mytracefile.log")
Before using the application, the user has to be authenticated. To authenticate, the user can use a Visual Guard Accounts or a Windows account (See the Visual Guard Console documentation for more detail)
The Visual Guard Account, the Windows Account and the Window By Credential Account can be authenticated using the following code, in the open event of the application or in the login window:
Example:
// Authenticate a Visual Guard User and load the security data
if isvalid(guo_vgmanager) Then
if guo_vgmanager.of_VerifyUser(VGlogin, VGpassword) > 0 Then
Open(w_Main)
Else
Return
End if
End if
// Authenticate a Windows User and load the security data
if isvalid(guo_vgmanager) Then
if guo_vgmanager.of_VerifyUser() > 0 Then
Open(w_Main)
Else
Return
End if
End if
// Authenticate a Windows By Credential User and load the security data
if isvalid(guo_vgmanager) Then
if guo_vgmanager.of_VerifyUser(VGlogin, VGpassword, vg_n_authenticationmode.windowsbycredential) > 0 Then
Open(w_Main)
Else
Return
End if
End if
You can apply the security anywhere in the application, using the function “of_SetSecurity”. This function takes three parameters:
// Trigger the security in the open Event of the ancestor window
if isvalid(guo_vgmanager) Then
guo_vgmanager.of_SetSecurity( this, "open", "")
End if
// In the event “w_master.pfc_preopen” in “pfemain.pbl”:
if IsValid(guo_vgmanager) Then
guo_vgmanager.of_SetSecurity ( this, "open", "")
End if
// In the event “w_master.pfc_postopen” in “pfemain.pbl”:
if IsValid(guo_vgmanager) Then
guo_vgmanager.of_SetSecurity ( this, "postinit ", "")
End if
// In the event “u_dw.Constructor” in “pfemain.pbl”:
if IsValid(guo_vgmanager) Then
guo_vgmanager.of_SetSecurity ( this, "constructor ", "")
End if
With this code, the Visual Guard manager can apply the security for all the descendent of the calling objects.
The program VGPBClient.exe and these dependencies must be copying in the current directory of the secure
PowerBuilder application using Visual Guard 2016. (Or in a path accessible by it).
The configuration of the VisualGuardConfiguration.config file of this program should be made correctly:
Modify applicationId and connectionString with your values of application:applicationId="7e6b1582-9229-451a-a615-22ec70933353"
connectionString="server=YOURSERVERNAME\YOURSQLEXPRESS;initial catalog=visualguarddb;Trusted_Connection=True;"
[SECURITY] VGServer=VGPBClient TraceServeur=Y (or N, to delete or no files exchange with VGPBClient for tracing execution).
The exchange files between PowerBuilder application and VGPBClient are generated, by default, in the directory:
And following the setting of "traceServer" in file configuration (.cfg) of PowerBuilder application files are deleted after use or no.