Вопрос

Я использую С# и .NET 2.0.Моему приложению нужен какой-то способ проверки разных пользователей, поэтому я буду использовать идентификатор оборудования, но я увидел, что могу использовать только:

  • mac адрес - легко меняется и не у всех есть // НЕТ
  • идентификатор процессора — используя WMI, он возвращает значение модели процессора, оно не уникально // НЕТ
  • серийный номер материнской платы — он есть не на каждой материнской плате // НЕТ
  • серийный номер тома Windows — я не уверен, будет ли он изменен при переустановке Windows и формате тома

Так есть ли что-то, что я не упомянул о hwid?Я хочу что-то, что будет у всех и не будет удалено при переустановке Windows.В противном случае мне пришлось бы использовать серийный номер тома Windows.


РЕДАКТИРОВАТЬ:Судя по комментариям, я считаю, что лучше использовать идентификатор HDD.Как его получить?РЕДАКТИРОВАТЬ2:Я только что прочитал, что у дисков SCSI нет последовательного порта.Это правда?

ОКОНЧАТЕЛЬНОЕ РЕДАКТИРОВАНИЕ:Я уже использую серийный номер корневого диска в своем приложении.Это работает очень хорошо.Спасибо всем.

Это было полезно?

Решение

Серийный номер HDD: уникальный, неизменный, и у каждого он есть.

Не идеальный вариант, но ...

Другие советы

Ну, я бы выбрал более одного идентификатора.Если вы объедините достаточное количество идентификаторов, они дадут вам достаточную уникальность.

РЕДАКТИРОВАТЬ:вы также можете выбрать место на жестком диске, где была установлена ​​ваша программа (Пласттер, Цилиндр и т. д.).

Почему вы хотите использовать идентификатор аппаратного обеспечения? Я бы пошел с некоторыми видами формы (или AD на основе AD) безопасности, сам.

Учитывая, что, однако: вещь о HWID заключается в том, что она идентифицирует эту конкретную конфигурацию компьютера: она предназначена для изменения, если существуют изменения системы. Вы упоминаете, что серийный объем Windows может измениться на переустановке и переформатировать, но не будет ли ваше программное обеспечение также не придется переустановить в этот момент? HDD SERIAL может также изменить, если, скажем, пользователь сводит HDDS по какой-то причине.

Если вам необходимо использовать HWID, вам, вероятно, понадобится выбрать один (или более) доступных вариантов, чтобы обеспечить уникальность и либо код вокруг, либо информировать пользователей о том, что аппаратные изменения требуют повторной установки и / или перенастройки вашего программного обеспечения Отказ

MAC-адрес не очень надежен. Вы должны использовать то, что нельзя изменить такой идентификатор CPU или IDE IDE HDD.

Вот хочу, чтобы я имею в виду:
http://www.soft.tahionic.com/download-hdd_id/index.html.
http://www.soft.tahionic.com/download-hdd_id/hardware%20ID%20Programmer%27S%20DLL.html.


И ответить на ваш вопрос, да, SCSI не имеет идентификатора аппаратного обеспечения.

Вам нужно подумать о безопасности или только надежности, т. Е. Пользователь хочет добраться за проверкой вашего удостоверения личности? Если вам нужна (высокая) безопасность, купите одну из продуктов «Программное обеспечение», это гораздо дешевле, чем сделать это самостоятельно.

Никакая высокая безопасность не требуется? => Другая возможность использовать пользователя или Machine SID. Вы должны учитывать, что ваше приложение выполняется Elvated => пользователь, является администратором тогда.

Последнее, но не менее важное: пишите случайное значение некоторых байтов в реестр (возможно, в разных местах) под HKEY_CURRENT_USER и используйте их в качестве идентификатора.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top