IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web avec .NET Discussion :

Reconnaissance de navigateur et IE11


Sujet :

Développement Web avec .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Billets dans le blog
    2
    Par défaut Reconnaissance de navigateur et IE11
    Bonjour,

    J'ai un petit souci avec un site où je vérifie la version du navigateur.
    J'utilise :
    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim InfNav As HelperBrowser.InfoNavigateur = HelperBrowser.InfoBrowserUA()
                If (InfNav.Name = HelperBrowser.CHROME AndAlso InfNav.Version < 30) OrElse (InfNav.Name = HelperBrowser.IE AndAlso InfNav.Version < 9) OrElse (InfNav.Name = HelperBrowser.FIREFOX AndAlso InfNav.Version < 25) OrElse (InfNav.Name = HelperBrowser.OPERA AndAlso InfNav.Version < 15) OrElse (InfNav.Name = HelperBrowser.SAFARI AndAlso InfNav.Version < 4) Then
                    HelperJournal.WriteEntry(InfNav.Name & "/" & InfNav.Version.ToString)
                    Response.Redirect("~/BadBrowser.aspx")
    ...

    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    Public Class HelperBrowser
     
        Private Const MsgJournal As String = "Information Browser"
        Public Const CHROME As String = "CHROME"
        Public Const FIREFOX As String = "FIREFOX"
        Public Const SAFARI As String = "SAFARI"
        Public Const OPERA As String = "OPERA"
        Public Const IE As String = "IE"
        Public Const IE11 As String = "INTERNETEXPLORER"
        Public Const INCONNU As String = "INCONNU"
     
        Public Class InfoNavigateur
            Public Name As String
            Public Version As Integer
        End Class
     
    Public Shared Function InfoBrowserUA() As InfoNavigateur
            Return InfoBrowserUA(Web.HttpContext.Current.Request.UserAgent, Web.HttpContext.Current.Request.Browser)
        End Function
     
        Public Shared Function InfoBrowserUA(ByVal UserAgent As String, ByVal MonNav As HttpBrowserCapabilities) As InfoNavigateur
            Dim Retour As New InfoNavigateur
            Try
                Dim MonUserAgent As String = UserAgent.ToUpper
                Dim MesPartUserAgent() As String = MonUserAgent.Split(" ")
                If MonUserAgent.Contains(CHROME) Then
                    Retour.Name = CHROME
                    For Each Part As String In MesPartUserAgent
                        If Part.Contains(CHROME) Then
                            Retour.Version = CInt(Part.Substring(Part.IndexOf("/") + 1).Split(".")(0))
                            Exit For
                        End If
                    Next
                ElseIf MonUserAgent.Contains(SAFARI) Then
                    Retour.Name = SAFARI
                    For Each Part As String In MesPartUserAgent
                        If Part.Contains("VERSION") Then
                            Retour.Version = CInt(Part.Substring(Part.IndexOf("/") + 1).Split(".")(0))
                            Exit For
                        End If
                    Next
                ElseIf MonUserAgent.Contains(OPERA) Then
                    Retour.Name = OPERA
                    For Each Part As String In MesPartUserAgent
                        If Part.Contains("VERSION") Then
                            Retour.Version = CInt(Part.Substring(Part.IndexOf("/") + 1).Split(".")(0))
                            Exit For
                        End If
                    Next
                ElseIf MonUserAgent.Contains(FIREFOX) Then
                    Retour.Name = FIREFOX
                    For Each Part As String In MesPartUserAgent
                        If Part.Contains(FIREFOX) Then
                            Retour.Version = CInt(Part.Substring(Part.IndexOf("/") + 1).Split(".")(0))
                            Exit For
                        End If
                    Next
                ElseIf MonUserAgent.Contains(IE) OrElse MonUserAgent.Contains(IE11) Then
                    Retour.Name = IE
                Else
                    Retour.Name = MonNav.Browser.ToUpper
                    Retour.Version = CInt(MonNav.Version.Split(".")(0))
                End If
     
            Catch ex As Exception
                HelperJournal.WriteException(ex, MsgJournal)
                Retour.Name = INCONNU
                Retour.Version = 0
            End Try
     
            Return Retour
        End Function
    End Class

    Pour IE11 ça me renvoie IE version= 7

    Le plus fort c'est que en locale sur ma machine de dev (Win 8 VS2012) ça marche.
    Le problème est sur le serveur de test (Win 2008 SP2 IIS 7)
    J'ai même passé le projet en Framework 4.5 : pareil
    Le serveur est à jour (http://blogs.msdn.com/b/ieinternals/...ko-webkit.aspx

  2. #2
    Membre éprouvé
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Billets dans le blog
    2
    Par défaut
    Je viens de mettre des traces les voici :

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    HelperJournal.WriteEntry("UA:" & Request.UserAgent)
                HelperJournal.WriteEntry(Request.Browser.Browser & "/" & Request.Browser.MajorVersion)
                HelperJournal.WriteEntry(Request.Browser.Type & "/" & Request.Browser.Version)

    A partir de VS2012:
    16/04/2014 14:49:53 : Information
    UA:Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
    16/04/2014 14:49:53 : Information
    InternetExplorer/11
    16/04/2014 14:49:53 : Information
    InternetExplorer11/11.0
    Mais sur le Site sur le serveur, ouverture depuis mon poste (même InternetExplorer)
    16/04/2014 15:01:23 : Information
    UA:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; InfoPath.3)
    16/04/2014 15:01:23 : Information
    IE/7
    16/04/2014 15:01:23 : Information
    IE7/7.0
    ????

    Sur IIS du serveur : dans Entete de réponse Http : je n'ai que : X-Powered-By. Rien qui force le mode de compatibilité
    et je ne vois rien dans le Web.config sur le serveur

    Quand je fais F12 sur IE. Le mode de document est 7 (par defaut) et le mode de userAgent = Defaut
    Quand je force mode de user agent à 10, le mode document passe à Edge par defaut et là ça marche
    16/04/2014 16:58:00 : Information
    UA:Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)
    16/04/2014 16:58:00 : Information
    IE/10
    16/04/2014 16:58:00 : Information
    IE10/10.0
    Je tente de mettre <meta http-equiv="X-UA-Compatible" content="IE=edge" /> dans la master mais rien n'y fait le site démarre sur mode document à 7 par defaut

    Quand je force dans IIS dans les entete de réponse HTTP : X-UA-Compatible à IE=edge : j'ai le même problème. Même si en faisant F12, maintenant en mode de document est bien edge (par défaut) mais le mode de l'useragent reste par défaut faut le mettre manuellement à IE10 pour que ça marche.

    C'est comme si mon serveur ne savait pas paramétrer un useragent à IE11.

Discussions similaires

  1. Reconnaissance de chiffres
    Par GoldenEye dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 18/02/2004, 10h26
  2. Réponses: 2
    Dernier message: 26/01/2004, 20h11
  3. Réponses: 2
    Dernier message: 21/07/2003, 12h22
  4. Réponses: 23
    Dernier message: 16/11/2002, 19h41
  5. [langage] Reconnaissance de mots
    Par Flo. dans le forum Langage
    Réponses: 2
    Dernier message: 10/08/2002, 23h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo