Thinfinity VirtualUI provides you with an API that you can use to develop your own authentication method and integrate it with VirtualUI.
Choose the code sample of your language of preference and add it to your implementation:
Delphi:
function ValidateUser(
const UserName, Password, Metadata: PWideChar;
SecurityRole, WinUser, WinPass, CustomData: PWideChar;
var Handled: Boolean): Cardinal; stdcall;
|
Input:
Username & Password
|
The credentials that you are trying to validate with the external authentication
|
Metadata
|
A JSON with the remote browser/user information: URL, IP, Cookie UBRWID and the product's name
|
Output:
SecurityRole
|
Specifies the Windows mapping of the authenticated user (UserName and Password). This SecurityRole can either be a Windows user or group, and it will be used to check which profiles it has access to
|
WinUser, WinPass
|
(optional) Credentials of a mapped Windows user. Will be used to run the application instance.
|
CustomData
|
(optional) Data for passing on to the application
|
Handled
|
Returns whether the login could be handled by the DLL.
|
C++:
THINFINITY_API DWORD __stdcall ValidateUser(LPWSTR lpUserName, LPWSTR lpPassword, LPWSTR lpMetadata,
LPWSTR lpSecurityRole, LPWSTR lpWinUser, LPWSTR lpWinPass, LPWSTR lpCustomData,
PBOOLEAN pHandled)
|
Input:
lpUserName & lpPassword
|
The credentials that you are trying to validate with the external authentication
|
lpMetadata
|
A JSON with the remote browser/user information: URL, IP, Cookie UBRWID and the product's name
|
Output:
lpSecurityRole
|
Specifies the Windows mapping of the authenticated user (UserName and Password). This SecurityRole can either be a Windows user or group, and it will be used to check which profiles it has access to
|
lpWinUser, lpWinPass
|
(optional) Credentials of a mapped Windows user. Will be used to run the application instance.
|
lpCustomData
|
Data for passing on to the application
|
pHandled
|
Returns whether the login could be handled by the DLL.
|
C#:
[DllExport("ValidateUser", CallingConvention = CallingConvention.StdCall)]
[return: MarshalAs(UnmanagedType.I4)]
public static Int32 ValidateUser(
[In, MarshalAs(UnmanagedType.LPWStr)] string lpUserName,
[In, MarshalAs(UnmanagedType.LPWStr)] string lpPassword,
[In, MarshalAs(UnmanagedType.LPWStr)] string lpMetadata,
[In, Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder lpSecurityRole,
[In, Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder lpWinUser,
[In, Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder lpWinPass,
[In, Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder lpCustomData,
[Out] bool pHandled);
|
Input:
lpUserName & lpPassword
|
Specifies the Windows mapping of the authenticated user (UserName and Password). This SecurityRole can either be a Windows user or group, and it will be used to check which profiles it has access to
|
lpMetadata
|
A JSON with the remote browser/user information: URL, IP, Cookie UBRWID and the product's name
|
Output:
lpSecurityRole
|
The authenticated username
|
lpWinUser, lpWinPass
|
(optional) Credentials of a mapped Windows user. Will be used to run the application instance.
|
lpCustomData
|
Data for passing on to the application
|
pHandled
|
Returns whether the login could be handled by the DLL.
|
Read more:
|