2009-02-18 10 views
5

Ich möchte die OS-Version, die der Browser öffnet, tatsächlich mein Projekt ist ein asp.net-Projekt und ich möchte wissen, welches Betriebssystem auf dem Client ausgeführt wird, aber es gibt eine Frage darüber. Da der Client xp verwendet, aber gleichzeitig Windows CE 5.0 verwendet, ist der Internet Explorer in Windows CE nicht so gut wie der in xp, daher leite ich den Benutzer auf die Seite um, für die ich ihn entworfen habe Windows CE. Gibt es eine Lösung dafür?Wie bekomme ich Betriebssystem-Version asp.net

Danke ..

+0

meine Antwort Lesen Sie weiter unten für die aktualisierten Lösung. –

Antwort

4

Das Wesentliche davon ist Verwendung Request.Browser.Platform, und die Version ist in Request.UserAgent.

0

Die USER_AGENT Parameter (auf dem Anforderungsparameters) der Geschichte erzählen sollte.

9

Verwenden Sie Request.UserAgent - das wird wahrscheinlich geben Sie alle Informationen, die Sie benötigen.

Es gibt eine "List of User-Agents" Website, die viele Beispielzeichenfolgen enthält, aber wenn Ihr Client eine begrenzte Auswahl an Setups hat, würde es sich lohnen, jeden einzelnen zu testen und den Benutzeragenten als vorbereitenden Schritt zu protokollieren.

Beachten Sie, dass Sie in vielen Browsern die Zeichenfolge des Benutzeragenten "fälschen" können. Sie dürfen diese daher nicht für Sicherheitszwecke verwenden - es klingt jedoch so, als wäre Ihr Anwendungsfall ziemlich vernünftig.

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

Sie können auch mit Hilfe von User-Agent finden.

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

Da die gewählte Antwort ist nicht auf dem neuesten Stand und lieferte einen fehlerhaften Link habe ich beschlossen, die Art, wie ich es erreicht zu veröffentlichen:

ich ein cooles Tool namens installiert: https://github.com/ua-parser/uap-csharp
, die den User-Agent analysieren zu OS, Browser, Browserversion etc ...

Link to Nuget.

Und das ist, wie es verwendet:

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; 
     } 
Verwandte Themen