Working in the
field, I have had to do some tweaking to get Internet Explorer and Chrome to
work properly when using NetScaler Gateway 10.x and Chrome 2.x. This blog will list the different scenarios
and how to resolve the issue at hand:
Problem #1: After
upgrading Java you receive the following error message when accessing
"Upgrade Wizard" or the "NetScaler Gateway":
Resolution: The workaround for this issue is as follows:
- Open the Control Panel on
your Windows System where you are trying to access the NetScaler GUI
- Open the Java Control Panel
- Click the Security Tab
- Click "Edit Site
List"
- In here type http://<ip_Address of NSIP of your NetScaler>
Now the Upgrade
Wizard and the NetScaler Gateway VIP will now open.
Problem #2: Internet Explorer Compatibility with
NetScaler Gateway 10.x
Cause: In the past year or so, Microsoft changed the
User-Agent string. As a result of this,
it broke the Access Gateway Login. Luckily,
Citrix has come up with a workaround to resolve the Internet Explorer 11
Compatibility problem.
Resolution: There are 2
workarounds for this:
Option 1: Add Access
Gateway Login site to the Internet Explorer Compatibility View Setting. By
doing this, the website will be displayed as if you were using an older version
of internet explorer. This particular way
is not really recommended because you would either have to ask users to add
this to their compatibility settings or set a group policy and add the Access
Gateway Web Sites which would not be helpful for external users.
Option 2: In the NetScaler, add explicit compatibility
instructions to the content being sent to the browser. Below are the configuration settings: (to
apply these settings I would recommend using Putty).
This
rewrite action adds the Internet Explorer compatibility instructions to the
origin content.
add
rewrite action NG-IE11 insert_after_all “HTTP.RES.BODY(6000)”
q/”\r\n”+”<META http-equiv=\”X-UA-Compatible\”
content=\”IE=EmulateIE9\”>”/ -search “text(\”</TITLE>\”)”
Then
use the following policy to repair the Access Gateway Login Pages
add
rewrite policy NG-IE11_rwpol “HTTP.REQ.URL.PATH.ENDSWITH(\”/vpn/index.html\”)”
NG-IE11
bind
rewrite global NG-IE11_rwpol 100 NEXT -type RES_OVERRIDE
Problem #3: When attempting to log into Access Gateway
using the Chrome browser, you receive a message to Install Citrix receiver,
even though you already have it installed on your PC.
Cause: Google announced that NPAPI plugin support, a
capability Citrix has depended on for years, will be disabled by default in
Chrome in April 2015. The NPAPI plugin
that Receiver for Windows and Mac install enables Receiver for Web to detect
that Receiver is installed and enables users to launch applications.
Resolution: Customize Receiver for Web in
Storefront. Insert the following code
into custom.script.js in the contrib folder under the Receiver for Web site,
users of Chrome browser will never be prompted to install Citrix Receiver.
$(document).ready(function
() {
function endPluginAssistant() {
CTXS.setCookie(CTXS.COOKIE_PLUGIN_ASSISTANT_STATE,
CTXS.PLUGIN_ASSISTANT_DONE);
if
(CTXS.getCookie(CTXS.COOKIE_PLUGIN_ASSISTANT_STATE) === null) {
CTXS.displayTemplate("CookiesAreDisabled");
} else {
CTXS.Application.displaySpinner();
CTXS.Events.publish(CTXS.Events.pluginAssistant.done);
}
};
var origInit = CTXS.PluginDetection.init;
CTXS.PluginDetection.init = function() {
if (CTXS.ClientInfo.isChrome()) {
endPluginAssistant();
return;
}
origInit();
}
});
If you still want
users to be able to download and install Receiver, please apply the following
code in the custom.script.js. This will
add a link to the user menu to download Receiver for Chrome browser.
$(document).ready(function
() {
$.ctxs.ctxsUserMenu.prototype._origGenerateDropDownMenu =
$.ctxs.ctxsUserMenu.prototype._generateDropDownMenu;
$.ctxs.ctxsUserMenu.prototype._generateDropDownMenu = function(ddMenu) {
var self = this;
var $mBody =
ddMenu.children(".usermenu-body");
if (CTXS.ClientInfo.isChrome()
&& (CTXS.ClientInfo.isWindows() || CTXS.ClientInfo.isMacOSX())) {
var clientUrl =
CTXS.ClientInfo.isWindows() ? CTXS.Config.pluginAssistant.win32.path :
CTXS.Config.pluginAssistant.macOS.path;
$mBody.append('<a
id="userdetails-downloadreceiver"
class="_ctxstxt_DownloadReceiver _ctxstip_DownloadReceiverToolTip"
href="{0}" role="menuitem"></a>'.format(clientUrl));
}
self._origGenerateDropDownMenu(ddMenu);
};
});
Labels: chrome, Compatibility View, Internet Explorer 11, Java Applet, NetScaler, NetScaler Gateway, Storefront