Pour des raisons de maintenance du site, un arrêt du site aura lieu lundi 16 décembre 2019 à partir de 18H00, pour une durée estimée de 30 minutes.

Veuillez nous excuser pour les désagréments que cette opération pourrait causer.

Lancement d'applications externes / Intranet

Guillaume IMBERT · le 12/11/14 à 11:13

A partir d'un portail intranet, nous souhaitons pouvoir lancer des applications externes :

- accès local sur le poste : exécutable comme word ou excel ...

- accès sur un site web : lancement d'un internet explorer avec en paramètre une url

- accès à une application via citrix : lancement du client citrix avec en paramètre une application

Menu applications

Nous avions mis en place un principe de lancement via un activeX sur Internet Explorer : via un javascript, création d'un objet activeX sur l'application puis exécution d'une méthode Run

function executeLogiciel(exeName, suffixe){
var exe = "";
var suf = "";
exe = exeName.replace(/{G}/gi, "\"");
suf = suffixe.replace(/{G}/gi, "\"");
var wsh = new ActiveXObject('WScript.Shell');
try{
wsh.Run("\"" + exe + "\" " + suf);
}catch(e){
alert("Le logiciel demandé n'est pas installé sur votre machine");
};
wsh = null;
}

Ce système est intéressant mais il est limité à Internet Explorer avec l'activeX.

De plus cela pose des problèmes de sécurité dans le navigateur.

Les utilisateurs sont demandeur du maintien de ce système de lancement dans leur intranet.

Avez vous trouvez d'autres principes de lancement qui pourraient être plus souples et multi navigateurs ?

Merci d'avance pour la discussion à ce sujet.

 

3 pts
Olivier Jaquemet · le 12/11/14 à 12:12

Bonjour,

Une option est l'utilisation d'une application dédiée sur le poste client, qui prend en charge un protocole spécifique enregistré sur le systéme d'exploitation pour déclencher les actions voulues. 

  • On défini arbitrairement un protocole (aka "scheme name") à utiliser dans les URLs des liens d'actions (comme les liens http:, ftp:, mailto:, tel:, etc),
    En prenant soint de ne pas être en conglit avec les protocoles existants  :
    http://en.wikipedia.org/wiki/URI_scheme 
    Par exemple : exec:
  • Dans les pages ou l'on souhaite proposer les actions on insert des liens avec ce protocole, suivi d'une quelconque action qui sera utilisé par l'application native sur le poste clien
    Par exemple : <a href="exec:appli1">Appli 1</a>
  • Une application native est développée et installé sur le poste client : 
    • Elle est engistrée  dans le système d'exploitation pour prendre en charge le protocole retenue
      Sous Windows, via une simple clé de registre, cf "Registering an Application to a URI Scheme"
      http://msdn.microsoft.com/en-us/library/ie/aa767914(v=vs.85).aspx 
    • Si appli1 est reçu alors elle ouvrre l'application correspondante
    • IMPORTANT : Pour assurer la sécurité, cette application doit être extrèment restrictive et ne pas autoriser autre chose qu'une liste blanche préalablement établies. Elle doit également procéder a une validation très stricte des éventuels arguments autorisés.

C'est l'approche retenue par le module Microsoft Office et l'addin Office : l'action "Éditer avec Microsoft Word/Excel/PowerPoint" proposé lors l'affichage d'un document utilise une URL avec le protocole "jol:" qui est ouvert par une application dédiée "Jalios.Office.Launcher.exe".

7 pts
Guillaume IMBERT · le 17/12/14 à 09:57

Merci pour ce retour très détaillé qui répond bien à la question

0 pt