Подтвердить что ты не робот

Как бы вы обнаружили текущий браузер в Api Controller?

Я пытаюсь обнаружить текущий веб-браузер в одном из моих контроллеров Api в моей программе, используя MVC4. Везде, где я смотрю, люди говорят использовать Request.Browser, однако я не могу заставить это работать. Любые предложения или есть что-то, что я пропускаю?

4b9b3361

Ответ 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;