API .NET Connect ou LoadICAFile ne fonctionnent pas sur site de confiance

Bonjour,



J’ai cherché sur tous les forums et je n’ai pas trouvé de solution à mon problème. J’ai essayé tous les trucs et astuces avec les clés de registre, les paramètres du client ICA, les paramètres de IE, ouvert des ports (jusqu’à mettre le site dans une DMZ), mais rien ne fonctionne.



Contexte :

Serveur


  • Citrix XenApp 6 Fundamentals Edition (6.0.36399.0)

  • Windows Server 2008 R2 Standard SP1


Client

  • Windows 7, 64 bits, IE9 32 bits et Client ICA 12.1.44

  • Windows XP, IE8 et Client ICA 11.2.0


Utilisation des API Citrix (ICA Objet WFICALib) pour lancer des applications.

Via l’interface Web, après la signature, la liste des application est affichée. Si nous cliquons sur une application pour la lancer, nous avons 2 comportements différents suivant que le site pointé par l’URL est déclaré ou non dans les sites de confiance.

  • Non déclaré dans site de confiance : IE charge le fichier ICA et demande l’autorisation de l’ouvrir. Si on clique Ouvrir, l’application se lance.

  • Déclaré en site de confiance : IE lance directement l’application sans demander de confirmation


    Si l’on transpose ceci en utilisant les APIS, nous avons aussi 2 comportements différents. Nous gérons la connexion et récupérons l’URI du fichier ICA que nous chargeons dans la propriété ICAFile, puis nous faisons un Connect().

    • Non déclaré dans site de confiance : le Connect() se passe sans problème et l’application est lancée (événement OnICAFile)

    • Déclaré dans site de confiance : nous récupérons l’événement OnICAFileFailed et l’application n’est pas lancée.

Même comportement si l’on fait un LoadIcaFile(uriica) à la place du Connect(), événement OnICAFileFailed.


//uriica = Uri.EscapeUriString(uriica);
Debug.WriteLine(GetType().Name + ".Connect uriica: " + uriica, GetType().Namespace);
if (axICAClient.Connected == true)
{
axICAClient.Disconnect();
}

//Set Server locator
axICAClient.CacheICAFile = false;
axICAClient.ICAFile = uriica;
// 1=16-color (default) 2=256-color 4=16-bit-color 8=24-bit-color 16=32-bit-color
axICAClient.DesiredColor = WFICALib.ICAColorDepth.Color24Bit;
//Enable seamless
axICAClient.TWIMode = true;
axICAClient.WinstationDriver = "ICA 3.0";
axICAClient.TransportDriver = "TCP/IP";
axICAClient.SessionExitTimeout = 120;
axICAClient.BrowserProtocol = "HTTPonTCP";

axICAClient.CPMAllowed = true;
axICAClient.VSLAllowed = true;

axICAClient.Visible = true;
axICAClient.DesiredHRes = Math.Min(Screen.PrimaryScreen.Bounds.Width, this.Width);
axICAClient.DesiredVRes = Math.Min(Screen.PrimaryScreen.Bounds.Height, this.Height);
axICAClient.ScalingMode = WFICALib.ICAScalingMode.ScalingModeSize;

axICAClient.Connect();


Quelqu'un connait-il une solution à ce problème ? ???