คำตอบ Comment distinguer IE8 32 bits de IE8 64 bits ?

  • 8 มีนาคม 2555 15:07
     
     

    Bonjour.

    J'utilise HttpContext.Current.Request.Browser dans une application ASP.NET pour déterminer à quel type de navigateur j'ai à faire. Est-il possible - et si oui, comment ? - de distinguer ces deux versions d'IE 8 ?

    Si non, existe-t-il un autre moyen ?

    Merci d'avance,

    Gilbert

ตอบทั้งหมด

  • 8 มีนาคม 2555 15:34
    ผู้ตอบ
     
     คำตอบที่เสนอ มีโค้ด

    Bonjour,

    A ma connaissance la propriété Browser.Version suffit pour déterminer la version du navigateur :

    HttpContext.Current.Request.Browser.Version
     

    http://msdn.microsoft.com/fr-fr/library/system.web.configuration.httpcapabilitiesbase.version.aspx.

    Il suffit de mettre en correspondance la version renvoyée avec celle connue du grand publique du navigateur.

    Cordialement


  • 8 มีนาคม 2555 16:12
     
     

    Bonjour Ould,

    Désolé, mais les deux versions de IE8 répondent seulement IE 8 0. D'où ma question...

    Gilbert

  • 8 มีนาคม 2555 16:28
    ผู้ตอบ
     
     

    Bonjour,

    ça doit être causé par le fait que le mode compatibility view est activé sur le navigateur IE9.

    Mais à la limité, vous devez tenir compte que de la version indiquée par la requête http car le navigateur IE vous indique la version courante de sa compatibilité et c'est ça qui doit vous intéressé finalement pour bien gérer votre rendu.

    Voir les liens suivants : 

    http://blogs.msdn.com/b/ie/archive/2009/01/09/the-internet-explorer-8-user-agent-string-updated-edition.aspx

    http://forums.asp.net/t/1450075.aspx/1

    Cordialement.

  • 8 มีนาคม 2555 16:35
     
     

    Bonjour.

    Je ne parle pas de IE9, mais bien de IE8 natif.

    Ensuite, il ne s'agit pas de gérer mes rendus. Il s'agit d'éviter que des utilisateurs de la société n'utilisent la version 64 bits pour accéder à des applications qui ne sont pas compatibles avec IE8 64 bits, alors qu'elles sont compatibles avec IE8 32 bits.

    Plutôt que de voir une application planter, mes utilisateurs auront un message explicatif leur demander de lancer IE8 32 bits au lieu de IE8 64 bits.

    Mais pour ça, je dois pouvoir le détecter.

    Gilbert

  • 8 มีนาคม 2555 17:23
    ผู้ตอบ
     
     คำตอบ มีโค้ด

    Bonjour,

    Désolé, mais je n'avais pas pu saisir votre problème, pour mieux comprendre pour quoi je vous renvoie vers la description initiale que vous en avez fournie !!

    Pour déterminer s'il s'agit d'une version 32 ou 64 bit, une solution consisterait à plutôt regarder dans la valeur de la properiété 

    HttpContext.Current.Request.UserAgent

    Faite une recherche de l'une des chaînes "WOW64" "Win64", "IA64", "x64" si elle y présente ce que c'est du 64 bit sinon c'est du 32 :

    HttpContext.Current.Request.UserAgent.Contains("Win64")

    http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx

    Cordialement.


    • แก้ไขโดย Ould MouradEditor 8 มีนาคม 2555 18:42
    • เสนอเป็นคำตอบโดย Ould MouradEditor 9 มีนาคม 2555 8:57
    • ทำเครื่องหมายเป็นคำตอบโดย Ould MouradEditor 9 มีนาคม 2555 8:58
    •  
  • 8 มีนาคม 2555 22:18
     
      มีโค้ด

    Bonjour Gilbert,

    Vous devez utiliser la propriété Win32 du Browser:

    <%@ Page Language="C#" %>
    
    <%
        HttpBrowserCapabilities browser = Request.Browser;
    
        bool isIE8 = browser.Browser == "IE" && browser.MajorVersion == 8;
        bool is32Bits = browser.Win32;
    
        // Ce que vou voulez faire:
        bool isE832bits = isIE8 && is32Bits;
        bool isE864bits = isIE8 && !is32Bits;
    
        if (isE832bits)
            Response.Write("Votre navigateur IE8 tourne sur une machine 32 bits");
        else if (isE864bits)
            Response.Write("Votre navigateur IE8 tourne sur une machine 64 bits");
        else
            Response.Write("Votre navigateur Web n'est pas IE8");
    %>

    Cordialement,


    My blog

    Whether you’re a construction worker, a forum moderator, or just someone that likes helping people. I think these guidelines can be helpful in keeping you helpful when being helpful.


    • แก้ไขโดย Link.fr 9 มีนาคม 2555 11:54 Minor
    •  
  • 9 มีนาคม 2555 8:36
     
     คำตอบ

    Ould et Akram,

    Merci pour vos réponses. Elles ne me semblent pas correctes à 100%, mais nous progressons.

    Les deux navigateurs répondent Win32 = True.

    Le WOW64 est renvoyé par IE8 32 bits (exécuté sur une machine 64 bits), et pas par IE8 64 bits. Cette information est pertinente, à condition de bien la comprendre.

    IE8 32 bits affiche le UserAgent suivant :

    UserAgent = Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET CLR 1.1.4322; InfoPath.3)

    IE8 64 bits affiche le UserAgent suivant :

    UserAgent = Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)

    Conclusion : une fois IE8 reconnu, il faut d'abord regarder s'il tourne sur une machine 64 bits (présence de Win64). Si non, nous avons un IE8 32 bits. Si oui, il faut chercher la présence de WOW64. Si trouvé, nous avons un IE8 32 bits. Si pas trouvé, nous avons un IE8 64 bits.

    Bonne journée,

    Gilbert

    • เสนอเป็นคำตอบโดย Ould MouradEditor 9 มีนาคม 2555 8:57
    • ทำเครื่องหมายเป็นคำตอบโดย Ould MouradEditor 9 มีนาคม 2555 8:58
    •