好的,我正在开发一个ASP.Net网站(C#代码后面),出于故障排除的原因(大多数要求技术支持的客户端不知道他们使用的是什么OS/Browser/BrowserVersion ),所以我们想记录一个“系统配置文件”,这样我们就可以更容易地解决与OS/浏览器相关的问题了。
目前,我正在使用Request.UserAgent。这样做的问题是,它返回了一个对我们的支持人员没有帮助的字符串:
Mozilla/5.0 (WindowsNT6.1;rv:24.0) Gecko/20100101 Firefox/24.0
我想要做的是只提取操作系统(Windows NT 6.1,或用户拥有的任何操作系统),而不需要其他浏览器信息,因为我已经将其他系统信息隔离如下:
UserID,UserOS,BrowserType,BrowserName,MajorVersion,MajorVersion,IsBeta,IsBeta ***
光靠自己就能得到操作系统吗?
如果您知道如何从客户端计算机(即Windows 7 vs Windows 6.1)获取操作系统友好名称,这将使我不必创建一个单独的OS编号数据库。
发布于 2013-10-31 22:36:37
用户代理不会给你一个友好的名字,所以你需要维护一个列表,类似的东西应该可以工作.
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];
}https://stackoverflow.com/questions/19714185
复制相似问题