2009-03-13 8 views
0

J'ai un site ASP.Net qui pousse les fichiers image vers le client. En raison des besoins farfelus de notre base d'utilisateurs diversifiée, certains postes de travail clients ont un composant ActiveX qu'ils doivent utiliser sur ce site Web pour manipuler cette image, mais en raison du coût, tous les utilisateurs n'ont pas ce contrôle. Ce que j'aimerais pouvoir faire est de déterminer si le contrôle ActiveX est installé sur le client, puis de le scripter en fonction du résultat de ce test.Est-il possible de déterminer si le client a un certain contrôle ActiveX installé?

J'ai exploré l'objet Request à fond et n'ai rien trouvé qui fasse exactement ce dont j'ai besoin. Request.Browser.ActiveXControls est bon à savoir, mais je dois aller plus loin. Y a-t-il un autre espace de noms que je devrais regarder? Est-ce seulement possible?

Merci d'avance.

Répondre

5

Vous ne pouvez pas interroger la disponibilité ActiveX du côté serveur. Même le flag Browser.ActiveXControls est une supposition de la chaîne UA, ce qui peut facilement être faux.

Tout ce que vous pouvez faire est de tenter de instancier l'objet à partir de JavaScript, et prendre des mesures côté client dépendant que:

var obj; 
try { 
    obj= new ActiveXObject('Control.ProgID'); 
} catch (e) { 
    obj= null; 
} 
if (obj) { 
    doActiveXEnhancedVersionOfPageThings(); 
} 
+0

C'est ce que je pensais. Merci pour votre réponse. –

Questions connexes