User account control impact on automating Internet Explorer during a Login VSI test
If you’ve been in touch with our Login VSI support department regarding an Internet Explorer issue, we may have asked you to enable protected mode. We usually ask to enable Protected Mode in cases where we cannot interact with the web page. That seems strange. Why would adding additional protection allow us to interact with the web page after all? The answer is a set of security features commonly known as user account control.
Protected mode is part of that set of security features. Protected Mode prevents a malicious website from being able to compromise the security of your system by running Internet Explorer with a lower so- called integrity level. Integrity levels control which level of application can talk to each other programmatically.
To enable Protected Mode in IE, go to Internet Options, select the Security tab, and check the Enable Protected Mode box.
Three integrity levels
There are 3 integrity levels: Low, Medium and High. High integrity level processes are typically processes running with administrator rights or even system level rights. Medium is the default normal level and Low is for untrusted processes. A process can talk to processes down the chain. High can talk to Medium and Low, for example. But you cannot go up the chain. This feature was introduced to combat so called shatter attacks.
Impact on Internet Explorer
Internet Explorer runs with the Low integrity level by default. Internet Explorer will switch to a higher integrity level where needed. An Intranet website, where protected mode is disabled, will run with the Medium level integrity level, for example. This switch is where the problem lies. When you start Internet Explorer programmatically, you get a reference to the newly started Internet Explorer process. That process starts with the Low integrity level.
If the website is located in an Intranet zone, then Internet Explorer will start a second process that runs with the Medium integrity level. But the program still has a reference to the old, Low integrity level process. This is why you might see CTXConnect being unable to interact with a website, or the Login VSI engine failing to be able to interact with an instance of Internet Explorer. When Protected Mode is enabled, a website is always run with the Low integrity level. The program retains the ability to control the application, as there is no need for a second process.
Login VSI has encountered an unexpected error and cannot initiate a session.
Conclusion: Why enable Protected Mode?
When you start Internet Explorer (IE) programmatically, IE runs with the Low integrity level but when you browse to an Intranet zone website, IE will start a second process with the Medium integrity level. Because of the different integrity levels, Login VSI will be unable to interact with Internet Explorer. Enabling Protected Mode will make sure that Internet Explorer is always running with the Low integrity level (also in an Intranet zone) and Login VSI is able to communicate with the webpage at all times.
And if you still have trouble with IE, let us know by contacting firstname.lastname@example.org.