Wednesday, July 20, 2011

Web Interface 4.x - The other How to's

Citrix has published many "How to..." articles about Web Interface 4.x and published also a very good Web Interface SDK (CTX106665) with a lot of details but there are always some "other How to questions". Most people know how to change the header, footer or the welcome area but in this article I will show some of the other Answers to How to questions.

Question like: How to speed-up WI logins? How to set default values? How to use the original multilanguage footer? How to disable right-click? How to redirect to HTTPS and so on.


How to speed-up Web Interface logins

When somebody tries to open the Web Interface login page early in the morning, then it might take some time before the page is loaded. Additional requests are fast and is due to the fact that in the background the worker processes needed to be started. If they are idle for 20min, then they get closed and new logins will again take some time. Now this behaviour can be disabled.

This can be done with the Internet Information Server (IIS) that comes with Windows 2003. Open the IIS Manager | Application Pools | Disable idle timeout for “worker processes” for CitrixWebInterface4.xAppPool

worker processes




How to use the multilanguage footer function


Close any Access Suite Console (ASC) that might be open and enabled the footer manually through the webinterface.conf file that is located by default in /Citrix/MetaFrame/Conf

Change the following lines

# FooterTextDefaultLocale=[language code]
# FooterText_=[Customized footer text in the specified language]


to something like

FooterTextDefaultLocale=en
FooterText_en=This is a example.
FooterText_de=Dies ist ein Beispiel.
FooterText_fr=Cela est un exemple.



How to set per Application settings

Therefore edit the default.ica file loacted by default in /Citrix/MetaFrame/Conf

In the [wfclient] section add the AppDN of your Publish Application, like [notepad] but remember the value is case sensitive to what you have used in the CMC!
Now add any Application specific setting you like. For instance adding TWIMode=Off will result in a none seamless session for the Publish Application notepad

default.ica



How to create a simple website


Sometimes a simple website is needed to launch a Publish Application. The option to create an html file with a linked ica file has been in the CMC since day one.

Open CMC | Applications | Application property | Create html file

create html file




How to change the STA ID when cloning PSE Server


Cloning Presentation Server 4.0 will not change the STA ID that is integrated in the XML service! To change the STA ID edit CtxSta.conf file in %ProgramFiles%\Citrix\system32 and change the STA ID with a value you like.

[GlobalConfig]
UID=STABB4BD26E58F5 <= change this (sample) value

After changing the STA ID, restart the Citrix XML service to pick-up the new ID.



How to disable right mouse click

This is a very old feature from Project Columbia but was never included to any Web Interface version. The following change is the simplest way to do it.

Edit the ayout.ascx file in /Citrix/MetaFrame/auth/include and /Citrix/MetaFrame/include
Search for the html tag and add oncontextmenu="return false"
Like How to Disable "Remember folder location" and start always in the root


Web Interface "remembers" (in a cookie) the folder location by default where users exit Web Interface and at the next login starts automatically in that folder. To overwrite the default of remembering folders and starting always in the root, two things need to be changed.

  1. Start always in the root

    Edit applist.cs in site/serverscripts

    -- find --
    currentFolder = userPrefs.getCurrentFolder();

    -- change to --
    currentFolder = "";

  2. Remove or Disable option from the presentation settings

    Edit presentationSettings.inc in site/include

    -- find --
    value="<%=VAL_ON%>" <%=viewControl.getRememberFolderCheckedStr()%>>

    -- change to --
    value="<%=VAL_ON%>" <%=viewControl.getRememberFolderCheckedStr()%>" disabled>

    before Image after

    To remove the option from the presentation settings

    Edit presentationSettings.cs in site/serverscripts

    -- find --
    bool bCustomizeRememberFolderOption = true;

    -- change to --
    bool bCustomizeRememberFolderOption = false;

    before Image after



How to enable "Show current folder location" for all users and always.

As a default Web Interface doesn't show the current folder location and the user has to set it by him self. To force the setting for all users, again two things need to be changed

  1. Show folder as default

    Edit applist.cs in site/serverscripts

    -- find --
    toolbarControl.setShowCurrentFolder( !java.lang.Boolean.FALSE.Equals( userPrefs.getShowFolder() ) && (currentFolder != null) );

    -- change to --
    toolbarControl.setShowCurrentFolder( currentFolder != null );

  2. Remove or Disable option from the presentation settings

    Edit presentationSettings.inc in site/include

    -- find --
    value="<%=VAL_ON%>" <%=viewControl.getShowFolderCheckedStr()%>>

    -- change to --
    value="<%=VAL_ON%>" <%=viewControl.getShowFolderCheckedStr()%> checked disabled>

    before Image after

    To remove the option from the presentation settings

    Edit presentationSettings.cs in site/serverscripts

    -- find --
    bool bCustomizeFolderDisplayOption = true;

    -- change to --
    bool bCustomizeFolderDisplayOption = false;

    before Image after



How to force the Application details description

Edit applist.cs in site/serverscripts

-- find --
viewControl.setShowAppDetails( !java.lang.Boolean.FALSE.Equals( userPrefs.getShowDetails() ) );

-- change to --
viewControl.setShowAppDetails( true );


How to securely redirect to Web Interface


As default Web Interface should be used with SSL encryption (HTTPS) enabled, since users are sending credentials overt the wire. This is even more important when using WI internally because researches showed that most attacks are coming from inside.

Difficult part is that users are not very familiar with typing httpS...

  1. After the Server certificate was applied to IIS, SSL should be disabled
    IIS Manager | Default Web Site | Directory Security | Edit secure communications | Disable SSL

    SSL Disabled

  2. Next is to enable SSL ONLY for Web Interface and every other site/folder you like.
    IIS Manager | Default Web Site | Citrix | MetaFrame | Directory Security | Edit secure communications | Enable SSL

    SSL Enabled

  3. Redirect user to Web Interface via secure channel
    When Web Interface 3.0/4.x was set as default Web Site, then the file webinterface.htm is placed in the IIS root (default %RootDrive%\Inetpub\wwwroot). Now the following line needs to be changed:

    window.location="Citrix/MetaFrame/";

    to

    window.location="httpS://FQDN_WI_SERVER/Citrix/MetaFrame/";

This way user can connect to FQDN_WI_SERVER using port 80 (HTTP) but they will be redirected to WI using HTTPS. Direct connection to http://FQDN_WI_SERVER/Citrix/MetaFrame/ will fail, since SSL is required. If direct connect should also supported, then a bit more scripting is required.

1 comment:

  1. Thanks for this, you have just increase are Intranet login times by like 30%. We are currently using quite a high 1024 bitssl encryption on are intranet could this also be causing the slow login aswell. Do you think it would be a good idea to reduce this down to 512 bit.

    ReplyDelete