Я пытаюсь обнаружить текущий веб-браузер в одном из моих контроллеров Api в моей программе, используя MVC4. Везде, где я смотрю, люди говорят использовать Request.Browser
, однако я не могу заставить это работать. Любые предложения или есть что-то, что я пропускаю?
Как бы вы обнаружили текущий браузер в Api Controller?
Ответ 1
Вы можете использовать HttpBrowserCapabilities в System.Web, подобном этому
var userAgent = HttpContext.Current.Request.UserAgent;
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;
Это зависит от браузера .ini в Windows/System32/inetsrv/или Windows/SysWOW64/inetsrv для определений.
Эта статья также может помочь - http://stephenwalther.com/archive/2010/03/05/use-asp-net-4-browser-definitions-with-asp-net-3-5
Ответ 2
Вы можете сделать что-то вроде следующего из действия веб-API:
System.Net.Http.HttpRequestMessage currentRequest = this.Request;
System.Net.Http.Headers.HttpHeaderValueCollection<System.Net.Http.Headers.ProductInfoHeaderValue> userAgentHeader = currentRequest.Headers.UserAgent;