2009-02-18 19 views
5

Quiero obtener la versión del sistema operativo que abre el navegador, en realidad mi proyecto es un proyecto asp.net y quiero saber qué sistema operativo se ejecuta en el cliente, pero hay una pregunta al respecto. Porque el cliente usará xp pero al mismo tiempo usará Windows CE 5.0, por lo que el explorador de Internet en Windows CE no es tan bueno como el que está en xp, debido a esto redirigiré al usuario a la página que diseñé para Windows CE. Entonces, ¿hay alguna solución para hacerlo?Cómo obtener la versión del sistema operativo asp.net

Gracias ..

+0

leer mi respuesta a continuación la solución más actualizada. –

Respuesta

4

La esencia de esto es el uso Request.Browser.Platform, y la versión está en Request.UserAgent.

0

El USER_AGENT parámetro (el de los parámetros de la petición) debe contar la historia.

9

Uso Request.UserAgent - que se probablemente dará toda la información que necesita.

Hay un sitio web "List of User-Agents" que ofrece muchas cadenas de muestra, pero si su cliente tiene un rango limitado de configuraciones, valdría la pena probar cada una de ellas y registrar el agente de usuario como paso preliminar.

Tenga en cuenta que muchos navegadores le permitirán "falsificar" la cadena de agente de usuario, por lo que no debe usar esto por razones de seguridad, pero parece que su caso de uso es bastante razonable.

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

también se puede encontrar con la ayuda de agente de usuario.

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

Dado que la respuesta seleccionada no es hasta la fecha y se suministra un enlace roto He decidido publicar la forma en que lo logró:

He instalado una herramienta fresca llamado: https://github.com/ua-parser/uap-csharp
que analiza el agente de usuario a sistema operativo, navegador, navegador, etc ...

Link to Nuget.

y así es como se utiliza:

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; 
     } 
Cuestiones relacionadas