Retorna os dados do Navegador do Cliente em Asp.Net MVC com C# (CSharp)

Autor : Antonio Carlos Ferreira de Azevedo
Postado em : 26/05/2016


Retorna os Dados do Navegador da conexão do Cliente

Útil principalmente quando temos problemas relatados por um usuário, podemos coletar facilmente através da função Resumo(), presente na classe, todos os principais dados do navegador sendo utilizado pelo usuário e analisar por exemplo se não é uma versão beta, se o JavaScript esta habilitado entre outros detalhes, a variável gerada pode ser armazenada junto aos dados da conexão do cliente.

Outro detalhe importante são os recursos utilizados para gerar esta Classe, podemos ver aqui nesta classe uma ideia do potencial da linguagem onde utilizamos classe rodando sob outra classe. É interessante que você estude os detalhes deste código.

Crie uma classe na pasta Models de seu projeto e de o nome de DadosNavegador.cs, copie e cole o código abaixo

Segue a Função

/* 
 * DadosNavegador
 * 
 * Retorna dados do Navegador do Cliente
 * 
 * by Antonio Azevedo
 * 
 * Visite nossa página http://www.codigoexpresso.com.br
 * 
 * Referencia ao objeto 'System.Web.HttpBrowserCapabilities'  
 *                     https://msdn.microsoft.com/pt-br/library/system.web.httpbrowsercapabilities(v=vs.110).aspx
 * 
 */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
public  class DadosNavegador 
{
    // Declarando as Variaveis 
    public _Navegador Navegador { get; set; }

    public class _Navegador
    {
        public string Nome { get; set; }
        public string Versao { get; set; }
        public Boolean isBeta { get; set; }
        public Boolean isAOL { get; set; }
        public Boolean RastreadorWeb { get; set; }
    }

    public  _Sistema Sistema { get; set; }

    public class _Sistema
    {
        public string Plataforma { get; set; }
        public string Win { get; set; }
    }

    public _Suporta Suporta { get; set; }

    public class _Suporta
    {
        public string VersaoJavaScript { get; set; }
        public Boolean Cookies { get; set; }
        public Boolean Frames { get; set; }
        public Boolean Tabelas { get; set; }
        public Boolean VBScript { get; set; }
        public Boolean JavaApplets { get; set; }
        public Boolean ActiveX { get; set; }
    }

    public _Resolucao Resolucao { get; set; }

    public class _Resolucao
    {
        public Int32 Altura { get; set; }
        public Int32 Largura { get; set; }
        public Int32 BitDepth { get; set; }
    }

    public _Mobile Mobile { get; set; }

    public class _Mobile
    {
        public  Boolean isMobile { get; set; }
        public  string Fabricante { get; set; }
        public  string Modelo { get; set; }
    }
   
    /// <summary>
    /// Instancia a Classe e coleta os dados do navegador
    /// </summary>
    public DadosNavegador()
    {
        System.Web.HttpBrowserCapabilities browser = System.Web.HttpContext.Current.Request.Browser;

        this.Navegador = new _Navegador();
        this.Sistema = new _Sistema();
        this.Mobile = new _Mobile();
        this.Resolucao = new _Resolucao();      
      
        this.Suporta = new _Suporta();

        this.Navegador.Nome = browser.Browser;
        this.Navegador.Versao = browser.Version;
        this.Navegador.isBeta = browser.Beta;
        this.Navegador.isAOL = browser.AOL;
        this.Navegador.RastreadorWeb = browser.Crawler;

        this.Sistema.Plataforma = browser.Platform;

        if (browser.Win16) { this.Sistema.Win = "16"; } else { this.Sistema.Win = "32"; }
        
        this.Mobile.isMobile = browser.IsMobileDevice;
        
        if (Mobile.isMobile)
        {
            this.Mobile.Fabricante = browser.MobileDeviceManufacturer.Replace("Unknown", "Não Reconhecido");
            this.Mobile.Modelo = browser.MobileDeviceModel.Replace("Unknown", "Não Reconhecido"); 
        }
        else
        {
            this.Mobile.Fabricante = "";
            this.Mobile.Modelo = ""; 
        }

        this.Resolucao.Altura = browser.ScreenPixelsWidth;
        this.Resolucao.Largura = browser.ScreenPixelsHeight;
        this.Resolucao.BitDepth = browser.ScreenBitDepth;

        this.Suporta.VersaoJavaScript = browser.EcmaScriptVersion.ToString();
        this.Suporta.VBScript = browser.VBScript;
        this.Suporta.JavaApplets = browser.JavaApplets;
        this.Suporta.Tabelas = browser.Tables;
        this.Suporta.Frames = browser.Frames;
        this.Suporta.Cookies = browser.Cookies;
        this.Suporta.ActiveX = browser.ActiveXControls;
    }

    /// <summary>
    /// Retorna uma string com dados resumidos do navegador e sistema 
    /// </summary>
    public string Resumo()
    {
        return string.Format("Navegador: {0}v{1}{2}, {3}Plataforma: {4} {5},Versão JS: {6}, Cookies: {7}, Resolução: {8}x{9}",
                this.Navegador.Nome,
                this.Navegador.Versao,
                isBeta(),
                isMobile(),
                this.Sistema.Plataforma,
                this.Sistema.Win,
                this.Suporta.VersaoJavaScript,
                this.Suporta.Cookies.ToString().ToLower().Replace("true","Sim").Replace("false", "Não"),
                this.Resolucao.Largura,
                this.Resolucao.Altura);
    }

    /// <summary>
    /// Retorna string se versão do Navegador for Beta
    /// </summary>
    private string isBeta()
    {
        if (this.Navegador.isBeta)
        {
            return " Beta";
        }

        return string.Empty;
    }
 
    /// <summary>
    /// Retorna string com dados do dispositivo movel se este for o caso
    /// </summary>
    private string isMobile()
    {
        if (this.Mobile.isMobile)
        {
            return string.Format("Mobile Fab: {0}, Mobile Mod: {1}, ", this.Mobile.Fabricante, this.Mobile.Modelo);
        }

        return string.Empty;
    }
}


Exemplo de uso

// Instanciando a Classe
DadosNavegador dadosNavegador = new DadosNavegador();

// Retorna string com nome do Navegador
string NomeNavegador = dadosNavegador.Navegador.Nome;

// Retorna um boolean (true/false) se gravação de Cookies esta habilitada
boolean Cookies = dadosNavegador.Suporta.Cookies;

// retorna string com resumo dos dados do navegador e Sistema
string ResunoNavegador = dadosNavegador.Resumo();


Nesta Classe apresentamos uma pequena parte dos recursos de HttpBrowserCapabilities, você pode estudar melhor os recurso no link abaixo :




Links Relacionados



Comentários