Remote data persistence using cookies

The use of cookies on login

The use of cookies on loginIn early May we started with a series of brief and simple, yet useful articles to help you take better advantage of the existing possibilities that Thinfinity® VirtualUI™ provides.

In the present note,  you will learn how to take advantage of the web browser’s cookies to add remote data persistence.  We will see a way to store remote data in the browser to be later retrieved from the application when needed.

Remembering login parameters, and saving the last position on a map or a form’s data are typical cases of such a scenario.

Working with Remote data persistence

One possible way to address this need would keep that information somewhere in the disk from where the application can recover it promptly. This would seem to be the most natural way of achieving that goal. But what would happen when we run the application remotely from the browser, greatly opening the range of users? In these cases, saving the information in the application does not seem to be the best way to do it; the most reasonable way, however, seems to be storing that information “near the user”; i.e, in the browser.

One of the most effective and classical methods of sharing information between the browser and any remote application is by using cookies. Cookies are small pieces of information that the application can store in each browser and later recover in a clear way. In our particular case, we can create and enquire the value of a cookie directly from the application through the SetCookie and GetCookie methods of Thinfinity.BrowserInfo.

SetCookie

The SetCookie method has the following format:

VirtualUI.BrowserInfo.SetCookie(name, value, expirationDate);

where,

Argument Data Type Description
name string Name of the cookie. With this name it is stored, properly identified, in the browser.
value string Value of the cookie
expirationDate string Stored in UTC/GMT format, indicating the expiration date of the cookie. If its value is “”, the cookie does not expire.

This example written in Delphi shows how store a data value (in this case the value of the username field) into a cookie:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Trim(edtUsername.Text) = '' then begin
    ShowMessage('The username field must have a value');
  end else begin
    // saving the cookie when running with Thinfinity VirtualUI only.
    if VirtualUI.Active then begin
      VirtualUI.BrowserInfo.SetCookie('CookiesDemo_Username', edtUsername.Text, '');
      ShowMessage('Username was saved as a cookie in your browser.');
    end;
  end;
end;

Please note the use of VirtualUI.Active before taking any action. This is because we only want to enable the use of cookies to those instances of the application running through VirtualUI. Also, the expirationDate argument is set to empty, indicating that the cookie will never expire.

GetCookie

The GetCookie method has a single argument:

VirtualUI.BrowserInfo.GetCookie(name);

where,

Argument Data Type Description
name string Name of the cookie. With this name the cookie will be retrieved from the browser. If the cookie doesn’t exist, an empty string will be received.

And the example written in Delphi is:

procedure TForm1.FormShow(Sender: TObject);
begin
  if VirtualUI.Active then
    edtUserName.Text := VirtualUI.BrowserInfo.GetCookie('CookiesDemo_Username');
end;

Just like in the case of SetCookie, in the present case, we also make sure that VirtualUI is active (i.e., that this instance of the application runs remotely, using VirtualUI).
Thus, with very few code lines, we can integrate a little further the browser with our application, and add minor enhancements that help improve the user experience.

 

Thinfinity Solutions for remote desktop, screen sharng, digital workspace and application virtualization.

Thinfinity Solutions

As you already know, Thinfinity VirtualUI is a web-enabling SDK to run apps on a browser without rewriting the code.

Explore our other remoting and web-enabling solutions, enjoy our free trials, or request a custom demo HERE. No commitment!

We will be happy to assist you and show you our portfolio for remote desktop, screen sharing, digital workspace, and application virtualization.

Leave a comment

Privacy Preferences
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.