如何在Api控制器中检测当前浏览器

本文关键字:检测 浏览器 控制器 Api | 更新日期: 2023-09-27 18:19:56

我正试图使用MVC4在程序中的一个Api控制器中检测当前的web浏览器。无论我走到哪里,人们都说要使用Request.Browser,但我无法做到这一点。有什么建议吗?或者我忽略了什么?

如何在Api控制器中检测当前浏览器

您可以像这样使用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

您也可以在Web API的操作中执行以下操作:

System.Net.Http.HttpRequestMessage currentRequest = this.Request;
System.Net.Http.Headers.HttpHeaderValueCollection<System.Net.Http.Headers.ProductInfoHeaderValue> userAgentHeader = currentRequest.Headers.UserAgent;