Member 12423231 Ответов: 1

Как я могу прочитать MAC ID клиентского ПК через java script WMI object in ASP.NET применение


Требование состоит в том, что пользователь должен войти в систему из определенной системы. Для этого я сохраняю MAC-адрес клиентского компьютера в своей базе данных. Когда пользователь попытается войти в систему, веб-приложение должно получить MAC-идентификатор клиентского ПК и проверить его с помощью значения базы данных. Если он совпадает, пользователю будет разрешено войти в систему. Можно ли прочитать MAC-идентификатор клиентского ПК через объект WMI?

Что я уже пробовал:

var macAddress = "";
ВАР IP-адрес = "";
var computerName =".";
ВАР с WMI = функция getobject("winmgmts:{impersonationLevel=олицетворения, (как systemtime)}!//" + имякомпьютера + "/корень/пространстве имен cimv2");
e = новый перечислитель (wmi. ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True"));
для (; !е.атенд() ; электронная.метод MoveNext()) {
ВАР ы = е.пункт();
macAddress = s. MACAddress;
ipAddress = s. IPAddress(0);
computerName = s. DNSHostName;
}

Kornfeld Eliyahu Peter

А что вы будете делать, если клиент приходит с ОС, отличной от Windows (например, мобильной)?
Вам лучше проверить, как использовать клиентский сертификат...

F-ES Sitecore

Google "получить mac-адрес клиента asp.net-и вы увидите, что ответ на этот очень часто задаваемый вопрос никогда не меняется.

1 Ответов

Рейтинг:
0

Dave Kreskowiak

Ты не можешь этого сделать. Доступ к клиентскому оборудованию закрыт для кода, работающего на сервере (ASP.NET) и к коду, работающему в браузере (javascript).

Кроме того, MAC-адрес не является уникальным для системы. Компьютеры MAC уникальны для сетевого интерфейса в сетевой подсети.

Вы можете иметь несколько сетевых карт с одним и тем же MAC-адресом, получающих доступ к вашему сайту из разных мест по всему миру, в одних и тех же городах, в одних и тех же компаниях, даже внутри помещений вашей компании.

А как насчет случая, когда ноутбуки имеют несколько сетевых карт, каждый со своим собственным MAC? Да, это довольно распространенное явление. Если ноутбук подключен к проводной сети, то MAC-адрес будет другим, когда они вытащат этот кабель и переключатся на беспроводную сеть или даже бросят машину в док-станцию с ее собственным NIC и еще одним MAC-адресом.

Чтобы идентифицировать машину, вам нужно будет установить сертификат на клиенте. Вам, вероятно, придется иметь свой собственный сервер сертификатов, который тоже будет их разукрашивать.

Если это немного много, сгенерируйте значение GUID и отправьте его клиенту для хранения в файле cookie. Да, файлы cookie могут быть очищены, так что это то, что вы должны оценить для себя, чтобы увидеть, является ли это приемлемым.