Skip to main content

NTLM Authentication

What is NTLM Authentication?

NT Lan Manager is an authentication protocol used by Microsoft Internet Information Server (IIS) and Microsoft Internet Explorer. This feature is widely used in intranets based on these two Microsoft products, although other Web servers also support NTLM within these environments.

NTLM offers background authentication where the workstation logon credentials of users are passed through to the web server.

When recording a web session this type of authentication will often be transparent as Internet Explorer will automatically pass on the user's logon details. However, if NTLM authentication is not enabled at runtime with a suitable user name and password then the user credentials associated with the Injector Listener service will be passed to the server. Access to requested resources will, more often than not, be denied.

Eggplant Injector Listener services are by default set to the Local System account. On Windows-based injectors, this can be changed by selecting Control Panel > Administrative Tools > Services and then right-clicking the Eggplant Injector Listener service and selecting Properties > Logon. In reality, you will never want to do this because a much easier way to configure the correct user name and password is to set it directly in the web virtual user script and/or using data dictionary values. This method also allows you to parameterize the user name and password from a data source thus ensuring unique user details.

When generating a web script you can preset the user name and password by enabling the option Server or Proxy Authentication Required in Web Generation Options. You can also set the user name and password using the setUserPassword() Web API method.

NTLM authentication is only supported on Windows Injectors using the Microsoft WinInet library. This can be selected from the checkbox Use Microsoft WinInet on the Web Options tab.

You can also set this selection in the script using the code:


See the API guide for setWinInet().