我正在尝试使用MVC4在我的程序中的一个Api控制器中检测当前的Web浏览器。无论我到哪里,人们都会说使用Request.Browser
,但是我无法让它工作。有什么建议或者我有什么东西可以忽略吗?
答案 0 :(得分:23)
您可以像使用
一样在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
答案 1 :(得分:9)
您可以在Web API的操作中执行以下操作:
System.Net.Http.HttpRequestMessage currentRequest = this.Request;
System.Net.Http.Headers.HttpHeaderValueCollection<System.Net.Http.Headers.ProductInfoHeaderValue> userAgentHeader = currentRequest.Headers.UserAgent;