LogoLogo
Download Free TrialLive DemoGet a QuoteContact Us
  • Thinfinity VirtualUI 3.5
  • Architecture
  • Getting Started Section
    • Getting Started
      • Installing Thinfinity VirtualUI
      • Simple UI Remoting
        • Compiling and Testing a WinForms Application
        • Compiling and Testing a Delphi Application
        • Compiling and Testing a C++ Application
        • Registering the Application in Thinfinity VirtualUI Server
        • Accessing the App from the Web
        • Application Execution Behavior
        • List of available demos for download
      • Adapting the Application
        • Customizing the Web Page
          • Preparing the Web Page
          • Customizing Settings
        • Programming VirtualUI
          • Handling VirtualUI Events
          • Using ClientSettings from Javascript
      • Public Github with available demos
  • Advanced Programming Section
    • Advanced Programming
      • Javascript Remote Objects
        • The Development Lab
        • Life cycle of the jsRO Objects
        • Creating jsRO Objects
        • Updating Properties
        • OnPropertyChange(), OnSet() y OnGet() Events
        • jsRO Remote Calls
          • Remote Methods
          • Custom Events
        • Available demos for Javascrip Remote Objects
      • Adding Web Content
        • The HTMLDoc Object
          • Loading Scripts
          • Importing HTML files
          • Accessing local files
          • Creating Web Component instances
        • Web Components
          • Loading Web Component Scripts
          • Importing Web Component HTML files
          • Accessing local resources from the Web Component
  • Advanced Features Section
    • Advanced Features
      • Scaling and Load Balancing
        • Scaling and Load Balancing Configurations
        • Installing components
        • Enabling Multiple RDS Accounts
        • Configuring Load Balancing
        • Sharing your License
          • Installing the License Server Manager
          • Add a Licence
            • Get a new Trial Serial Number
            • Activate a Serial Number Online
            • Activate a Serial Number Offline
          • Sharing your License over multiple Severs
      • Enhanced Browser and DPI Support
        • Model Inheritance
        • Property Reference
        • The Calculation Process
        • Examples
      • One-Time URL
        • How it Works
        • Creating a One-Time URL
      • Passing Command Line Arguments to VirtualUI Apps
        • Setting Command Line Arguments in the Application Profile
        • Sending Command Line Arguments in the VirtualUI URL
        • Building the URL in Javascript
        • Combining Application Profile and URL Command Line Arguments
      • Recording and Playing Sessions
        • Recording a Session
          • The OnRecorderChanged Event
      • Recover Browser Information with BrowserInfo
      • Change Browser Behavior Using ClientSettings
      • End-User Authentication
        • Entering Credentials
        • Processing End-user Credentials
        • Authentication Methods
          • Windows Logon
          • RADIUS
          • OAuth 2.0
            • OAuth2Models.ini
            • CSS for SSO Options
          • External DLL
            • Authentication API
      • Virtualization
        • File System Virtualization
          • Creating File System Redirections
          • The .vdir Files
          • Testing the File System Virtualization
        • Registry Virtualization
          • Creating Registry Redirections
          • The .vreg Files
          • Testing Registry Virtualization
        • Implementing Virtualization in Your Application
      • OEM Licensing
        • How to Create and Revoke Licenses
          • Creating Licenses
          • Revoking Licenses
      • Silent Install Options
  • Web Interface Section
    • Web Interface
      • login.html
      • index.html
      • app.html
        • app.js
        • The DockMenu Widget
        • Printing
          • How to install and use the Printer Agent
          • Printing Preview and Printing
          • Remote Printing SDK for Thinfinity - C#
          • Remote Printing SDK for Thinfinity - Delphi
      • lab.html
  • Configuration Reference Section
    • Configuration Reference
    • Development Server
      • General
      • License Manager
        • Activate a Serial Number Offline
        • Activate a Serial Number Online
        • Get a new Trial Serial Number
        • Proxy Activation
    • Server Manager
      • General
        • Managing the SSL Certificate
          • The Default Embedded Certificate
          • A Self-Signed Certificate
          • A CA Certificate
      • Sessions
      • Applications
        • Application Profile
          • General
          • Credentials
          • Permissions
          • Restrictions
          • Access Hours
          • Authentication Methods
        • Weblink Profile
          • Permissions
      • Authentication
        • Mappings
        • 2FA
          • TOTP
          • Duo Authentication Method Settings
            • How to configure DUO
        • Radius Authentication Method Settings
        • Oauth 2.0 Authentication Method Settings
          • Configure OAuth with Auth0
          • Configure OAuth with Okta
        • External DLL Authentication Method Settings
        • SAML Authentication Method Settings
          • Configure SAML with Okta
          • Configure SAML with Centrify
      • Services
      • License Manager
        • License Activation
          • Proxy Activation
          • Get a new Trial Serial Number
          • Activate a Serial Number Online
          • Activate a Serial Number Offline
    • Gateway Manager
      • Protection
  • Appendix A - Dialogs
    • Appendix A - Dialogs
    • Message Dialogs
      • Message Dlg
      • Input Box
      • Formatted Message
    • Printing Dialogs
      • Print
      • Page Setup
      • Print Preview
    • File Dialogs
      • Open File
      • Save As
  • Appendix B - Tailoring the Interface
    • Customizing the Web Interface
      • Changing the Logo
      • Customizing the Web Files
      • Files Location
  • Symbol Reference Section
    • Thinfinity.VirtualUI Class
    • Symbol Reference
Powered by GitBook
On this page

Was this helpful?

  1. Advanced Features Section
  2. Advanced Features
  3. End-User Authentication
  4. Authentication Methods
  5. External DLL

Authentication API

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:

· External DLL

PreviousExternal DLLNextVirtualization

Last updated 3 years ago

Was this helpful?