我正在尝试使用 MVC4 在我的程序中的一个 Api 控制器中检测当前的 Web 浏览器。我到处都看到人们说要使用Request.Browser
,但是我无法让它发挥作用。有什么建议或有什么我忽略的吗?
问问题
21281 次
2 回答
24
您可以像这样使用 System.Web 中的 HttpBrowserCapabilities
var userAgent = HttpContext.Current.Request.UserAgent;
var userBrowser = new HttpBrowserCapabilities { Capabilities = new Hashtable { { string.Empty, userAgent } } };
var factory = new BrowserCapabilitiesFactory();
factory.ConfigureBrowserCapabilities(new NameValueCollection(), userBrowser);
//Set User browser Properties
BrowserBrand = userBrowser.Browser;
BrowserVersion = userBrowser.Version;
这依赖于 Windows/System32/inetsrv/ 或 Windows/SysWOW64/inetsrv 中的 browscap.ini 进行定义。
这篇文章也可能有所帮助 - http://stephenwalther.com/archive/2010/03/05/use-asp-net-4-browser-definitions-with-asp-net-3-5
于 2013-06-25T19:44:28.567 回答
10
您也可以在 Web API 的操作中执行以下操作:
System.Net.Http.HttpRequestMessage currentRequest = this.Request;
System.Net.Http.Headers.HttpHeaderValueCollection<System.Net.Http.Headers.ProductInfoHeaderValue> userAgentHeader = currentRequest.Headers.UserAgent;
于 2013-06-25T20:10:36.880 回答