我有以下代码来获取用户详细信息:
HttpBrowserCapabilities bc = HttpContext.Current.Request.Browser;
string UserAgent = HttpContext.Current.Request.UserAgent;
ENT_TrackingData ret = new ENT_TrackingData()
{
IPAddress = HttpContext.Current.Request.UserHostAddress,
Browser = bc.Browser + " " + bc.Version,
DateStamp = DateTime.Now,
PageViewed = HttpContext.Current.Request.Url.AbsolutePath,
NodeId = UmbracoHelper.GetCurrentNodeID(),
IsMobileDevice = IsMobileDevice(UserAgent),
Platform = bc.Platform
};
Run Code Online (Sandbox Code Playgroud)
这很好但我注意到平台总是说我的机器的Windows NT不是Windows 7.有没有办法在ASP.Net中检测这种类型的信息?
我正在开发某种JavaScript库.我导致问题,我有一些具体问题:浏览器:IE8/IE9和文档模式:IE7我找到了解决方案,但我不想在所有情况下使用它,并希望使用它只是当我有上述情况.我知道我可以通过以下方式识别浏览器:
return navigator.userAgent.toLowerCase().indexOf('MSIE 8') > -1;
Run Code Online (Sandbox Code Playgroud)
但我认识只是浏览器版本,但不是文档模式,我不想使用我的解决方案,例如,浏览器模式IE8和文档模式IE 8.是否有办法获取页面文档模式在IE?提前致谢.
我一直在使用php的get_browser()
功能对我的用户进行一些轻量级分析,主要用于调试.然而,看来browsercap.ini的维护者,为get_browser提供动力的数据已经退出了项目,虽然有些人似乎正在重新启动它,但数据变得非常陈旧.他们正在谈论完全改写,所以我担心它会再花一段时间才能重新开始.
有人知道不依赖于browsercap.ini的替代方案吗?
编辑:我很抱歉我的问题含糊不清.我需要这个用于调试,而不是分析.我在Web应用程序中的"报告错误"工具中使用它,它有很多跨浏览器的错误,但我无法控制客户端计算机.这是一个非常古老的应用程序(最初是为IE6构建的),我们一直在尽最大努力使其更新,但跨浏览器问题有时很难找到.
再次感谢你
我想使用Request.Browser
属性(HttpBrowserCapabilities
类)来确定客户端系统的一些属性.
但是我似乎遇到了这个类的一些限制.我找不到一些应该相对容易从UserAgent
字符串中解析的属性,比如操作系统版本(Platform
对于大多数Windows版本只会返回WinNT,但不会返回Vista,XP等),或者它是否为x64(仅限Win16
和Win32
属性).
我原本希望在HttpBrowserCapabilities
类中看到这些属性,因为大多数其他用户代理信息都在那里.我错过了什么吗?我可以在其他地方找到这些信息吗?或者我应该自己从UserAgent字符串解析它?