andrerm 0 Denunciar post Postado Agosto 18, 2011 Olá, Tenha uma aplicação Web em C# e estou tentando capturar o Mac Address de quem está acessando. Consegui apenas ter um retorno do servidor onde está a aplicação string retorno = ""; foreach (NetworkInterface networkInterface in NetworkInterface.GetAllNetworkInterfaces()) { if (networkInterface.GetPhysicalAddress().ToString() != "") retorno = networkInterface.GetPhysicalAddress().ToString(); } Mas o que preciso é capturar o Mac do cliente, alguém sabe como posso fazer ? Compartilhar este post Link para o post Compartilhar em outros sites
Daniel Barroso 2 Denunciar post Postado Agosto 18, 2011 Caro, Primeira por questões de segurança você não tem acesso diretamente as configurações da maquina do cliente, você vai conseguir obter algumas informações que é enviada pelo browser na requisição utilizando o ServerVariables. Algumas informações. http://www.w3schools.com/asp/coll_servervariables.asp Agora se sua aplicação estiver executando em uma intranet e sobre um dominio você tem como pegar todas as informação da maquina do clientes que acessa sua aplicação web usando WMI, um exemplo neste post http://social.msdn.microsoft.com/Forums/en/netfxnetcom/thread/1344dad4-dffe-486c-bf30-1b75d21fc9ba. Compartilhar este post Link para o post Compartilhar em outros sites
andrerm 0 Denunciar post Postado Agosto 18, 2011 O sistema não é acessado pela Intranet, ele está na Web. A minha intenção é bloquear o acesso do sistema somente aos Mac´s cadastrados, como são muitos usuários não gostaria de ter que configurar nada nas máquinas para evitar um volume alto de manutenções futuras. Compartilhar este post Link para o post Compartilhar em outros sites
Ivan.Teles 23 Denunciar post Postado Agosto 18, 2011 Tente: Não esqueça da referencia: using System.Management; public string FindMACAddress() { //create out management class object using the //Win32_NetworkAdapterConfiguration class to get the attributes //af the network adapter ManagementClass mgmt = new ManagementClass("Win32_NetworkAdapterConfiguration"); //create our ManagementObjectCollection to get the attributes with ManagementObjectCollection objCol = mgmt.GetInstances(); string address = String.Empty; //loop through all the objects we find foreach (ManagementObject obj in objCol) { if (address == String.Empty) // only return MAC Address from first card { //grab the value from the first network adapter we find //you can change the string to an array and get all //network adapters found as well if ((bool)obj["IPEnabled"] == true) address = obj["MacAddress"].ToString(); } //dispose of our object obj.Dispose(); } //replace the ":" with an empty space, this could also //be removed if you wish address = address.Replace(":", ""); //return the mac address return address; } Referencia: http://www.dreamincode.net/code/snippet1727.htm Compartilhar este post Link para o post Compartilhar em outros sites
andrerm 0 Denunciar post Postado Agosto 18, 2011 Ivan, O exemplo que enviou também recupera o Mac do servidor, eu preciso do Mac do usuário. Compartilhar este post Link para o post Compartilhar em outros sites
Fvox 0 Denunciar post Postado Agosto 18, 2011 Hi. Bem, digamos que isso não é possível. Nos web apps, o mac address não é passado pela layer do OSI. Se não me engano, ela fica na layer de enlace e não é transmitida para a de transporte. Ainda que a aplicação esteja em intranet, um mac address só é acessível dentro de uma sub rede, ou seja, não globaliza a intranet como um todo. O que você pode fazer é distribuir um applet pro cliente, e enviar os dados a partir dele. Mas dentro de uma web application, não será possível. []'s Compartilhar este post Link para o post Compartilhar em outros sites
Daniel Barroso 2 Denunciar post Postado Agosto 18, 2011 Andrerm, Se o teu site não é público coloque um sistema de controle de acesso, e forneça o usuário e senha para quem bem lhe entender :D. Compartilhar este post Link para o post Compartilhar em outros sites
andrerm 0 Denunciar post Postado Agosto 30, 2011 Daniel, O sistema já tem controle de acesso por usuário e senha. Mas como algumas informações são confidenciais e podem ser usadas incorretamente pretendia bloquear pelo Mac Address, dessa maneira ele poderia acessar somente da máquina dele e não seria necessário instalar nada na máquina do usuário para realizar esse controle. Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Siqueira 0 Denunciar post Postado Janeiro 24, 2013 Andre boa noite, Você conseguiu uma solução? Estou com um site com o mesmo problema de controlar o acesso por MAC. Compartilhar este post Link para o post Compartilhar em outros sites
andrerm 0 Denunciar post Postado Janeiro 24, 2013 Andre boa noite, Você conseguiu uma solução? Estou com um site com o mesmo problema de controlar o acesso por MAC. Não consegui. Realizei o controle somente pelo IP, como o IP da empresa era fixo foi possiível realizar esse controle. Futuramente pretendo estudar outras maneiras de realizar o bloqueio via MAC, talvez seja possível em JavaScript, preciso dar uma olhada. Caso não seja vou ter que solicitar que o usuário instala o aplicativo para validação do MAC, mais ou menos igual é feito por alguns bancos. Compartilhar este post Link para o post Compartilhar em outros sites