2013-10-31 132 views
1

好了,所以我正在一个ASP.Net网站(C#代码后面),其中,用于排除故障的原因(我们的大多数客户是要求技术支持不知道他们使用的是什么操作系统/浏览器/ BrowserVersion的),我们想要记录“系统配置文件”这样说话,以便我们可以更轻松地解决OS /浏览器相关的问题。如何从Request.UserAgent获得操作系统?

目前,我使用Request.UserAgent。这里的问题是,它返回一个字符串,它无助于我们的支持人员:

的Mozilla/5.0(Windows NT的6.1; RV:24.0)的Gecko/20100101火狐/ 24.0

我想要做的就是通过自己拉只是操作系统(Windows NT的6.1,或任何操作系统的用户),而无需额外的浏览器信息,因为我已经分离等系统信息,例如:

|用户ID | UserOS | BrowserType | BrowserName | MajorVersion | MinorVersion | IsBeta |

| 11111 | userOS * | * Firefox24.0 * | * * Firefox * * | * * * * * 24 * * * * | * * * * 0 * * * * | * * 0 * * |

它可能只是自己得到操作系统?

奖励积分,如果你知道如何从客户机(即Windows 7的VS的Windows NT 6.1)获得OS友好名称,这会救我脱离不必创建OS号的一个单独的数据库。

+0

[是httpcapabilities,你正在寻找为?(http://msdn.microsoft.com/en-us/library/system.web.configuration.httpcapabilitiesbase.platform(v = vs.110)的.aspx) – rene

+0

httpcapabilities是我使用的隔离,其余什么的数据,但我没有看到任何可以给我操作系统的东西。它确实有'平台',但所有产生的是WinNT,没有版本来识别特定的操作系统。的 –

+0

可能重复[DOTNET的获取用户操作系统(HTTP \ _USER \ _AGENT)](http://stackoverflow.com/questions/2442935/dotnet-get-user-operating-system-http-user-agent) – rene

回答

4

,用户代理是不会给你一个友好的名称,以便您将需要保持一个列表,沿着这个线路应该工作的东西...

 Dictionary<string, string> osList = new Dictionary<string, string> 
     { 
      {"Windows NT 6.3", "Windows 8.1"}, 
      {"Windows NT 6.2", "Windows 8"}, 
      {"Windows NT 6.1", "Windows 7"}, 
      {"Windows NT 6.0", "Windows Vista"}, 
      {"Windows NT 5.2", "Windows Server 2003"}, 
      {"Windows NT 5.1", "Windows XP"}, 
      {"Windows NT 5.0", "Windows 2000"} 
     }; 

     string userAgentText = HttpContext.Current.Request.UserAgent; 

     if (userAgentText != null) 
     { 
      int startPoint = userAgentText.IndexOf('(') + 1; 
      int endPoint = userAgentText.IndexOf(';'); 

      string osVersion = userAgentText.Substring(startPoint, (endPoint - startPoint)); 
      string friendlyOsName = osList[osVersion]; 
     } 
+0

谢谢,第二部分正是我所期待的。就友好名称而言,维护一个列表并不是一个可行的选择,因为需要考虑太多的操作系统(Windows,Apple,Linux/Unix,Mobile),尤其是在代码中每次列表更新时都必须重新编译代码。我相信只要能够获得版本号(就像你已经完成的那样),然后使用谷歌搜索来发现操作系统必须是它的工作方式。非常感谢。 –

+1

没问题。此列表可能对您有所帮助,因为您必须查看每个操作系统的详细信息http://user-agent-string.info/list-of-ua/os – user2315985