2009-02-18 4 views
5

Je veux obtenir la version OS que le navigateur ouvre, en fait mon projet est un projet asp.net et je veux savoir quel système d'exploitation fonctionne sur le client mais il y a une question à propos de ça. Parce que le client utilisera xp mais en même temps utilisera Windows CE 5.0, donc l'explorateur Internet dans Windows CE n'est pas aussi bon que celui de xp, à cause de cela je redirigerai l'utilisateur vers la page pour laquelle j'ai conçu Windows CE. Alors, y a-t-il une solution pour le faire?Comment obtenir la version du système d'exploitation asp.net

Merci ..

+0

Lire ma réponse ci-dessous pour la solution la plus à jour. –

Répondre

4

L'essentiel est l'utilisation Request.Browser.Platform, et la version est dans Request.UserAgent.

0

Le paramètre USER_AGENT (sur des paramètres de la requête) devrait raconter l'histoire.

9

Utilisez Request.UserAgent - ce sera probablement donner toutes les informations dont vous avez besoin.

Il existe un site Web "List of User-Agents" qui donne beaucoup de chaînes d'échantillons, mais si votre client a une gamme limitée de configurations, il vaudrait la peine d'essayer chacune d'entre elles et de consigner l'agent utilisateur comme étape préliminaire. Sachez que de nombreux navigateurs vous permettent de "spoofer" la chaîne de l'agent utilisateur, vous ne devez donc pas l'utiliser à des fins de sécurité, mais il semble que votre cas d'utilisation soit assez raisonnable.

0
OperatingSystem os = Environment.OSVersion; 
var platform = os.Platform.ToString(); 
var version = os.Version.ToString(); 
var servicePack = os.ServicePack.ToString(); 

Vous pouvez également trouver avec l'aide de l'agent utilisateur.

String userAgent = Request.UserAgent; 

     if (userAgent.IndexOf("Windows NT 6.3") > 0) 
     { 
      //Windows 8.1 
     } 
     else if (userAgent.IndexOf("Windows NT 6.2") > 0) 
     { 
      //Windows 8 
     } 
     else if (userAgent.IndexOf("Windows NT 6.1") > 0) 
     { 
      //Windows 7 
     } 
     else if (userAgent.IndexOf("Windows NT 6.0") > 0) 
     { 
      //Windows Vista 
     } 
     else if (userAgent.IndexOf("Windows NT 5.2") > 0) 
     { 
      //Windows Server 2003; Windows XP x64 Edition 
     } 
     else if (userAgent.IndexOf("Windows NT 5.1") > 0) 
     { 
      //Windows XP 
     } 
     else if (userAgent.IndexOf("Windows NT 5.01") > 0) 
     { 
      //Windows 2000, Service Pack 1 (SP1) 
     } 
     else if (userAgent.IndexOf("Windows NT 5.0") > 0) 
     { 
      //Windows 2000 
     } 
     else if (userAgent.IndexOf("Windows NT 4.0") > 0) 
     { 
      //Microsoft Windows NT 4.0 
     } 
     else if (userAgent.IndexOf("Win 9x 4.90") > 0) 
     { 
      //Windows Millennium Edition (Windows Me) 
     } 
     else if (userAgent.IndexOf("Windows 98") > 0) 
     { 
      //Windows 98 
     } 
     else if (userAgent.IndexOf("Windows 95") > 0) 
     { 
      //Windows 95 
     } 
     else if (userAgent.IndexOf("Windows CE") > 0) 
     { 
      //Windows CE 
     } 
     else 
     { 
      //Others 
     } 
1

Depuis la réponse choisie n'est pas à jour et fourni un lien cassé, j'ai décidé de publier la façon dont je l'a accomplie:

J'ai installé un super outil nommé: https://github.com/ua-parser/uap-csharp
qui parse l'agent utilisateur à OS, navigateur, version de navigateur etc ...

Link to Nuget.

Et voilà comment utilisé:

public static string GetUserBrowser(string userAgent) 
     { 
      // get a parser with the embedded regex patterns 
      var uaParser = Parser.GetDefault(); 
      ClientInfo c = uaParser.Parse(userAgent); 
      return c.UserAgent.Family; 
     } 


public static string GetUserOS(string userAgent) 
     { 
      // get a parser with the embedded regex patterns 
      var uaParser = Parser.GetDefault(); 
      ClientInfo c = uaParser.Parse(userAgent); 
      return c.OS.Family; 
     } 
Questions connexes