How to integrate Visual Guard in PB application |
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 Visual Guard Console\VG PB Runtime\PB version Description of Visual Guard libraries:
There are 2 ways, you can connect to Visual Guard repository.
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
Example of file configuration: myconfigfile.cfg
[SECURITY]
VGServer=VGPBClient
TraceServeur=Y (or N, to delete or no files exchange with VGPBClient for tracing execution).
Note |
---|
The program VGPBClient.exe and it's dependencies must be copied in the current directory of the secured PowerBuilder application. (Or in a path accessible by it).
|
Note |
---|
The VisualGuardConfiguration.config file of this program (VGPBClient) 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;" |
Note |
---|
The exchange files between PowerBuilder application and VGPBClient are generated, by default, in the directory: C:\ProgramData\Novalys\VisualGuard\FileTrsf |
There is one main class in Visual Guard:
vg_n_cst_vgmanager : This class provides the main access point for interacting with Visual Guard. It provides authentication and authorization features, it allows to set the security of the object of your application.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.