Как я могу гарантировать, что компьютер подключен к определенному домену в автономном режиме? - PullRequest
0 голосов
/ 19 апреля 2011

Так что в прошлом я всегда разрабатывал клиентское программное обеспечение Windows Forms, в то время как внутри рабочей сети мы придерживались ленивого правила, что никакое внешнее оборудование не разрешено на месте, никто не может вмешиваться в оборудование, поэтому программное обеспечение всегда будет работать в сети, к которой все были присоединены, это позволило мне лениво установить контекст следующим образом:

WindowsPrincipal wp = new WindowsPrincipal(WindowsIdentity.GetCurrent());
Thread.CurrentPrincipal = wp;

Так что теперь меня попросили написать приложение, которое будет работать на ноутбуках торговых представителей. Я не могу на 100% гарантировать, что они не возьмут это программное обеспечение и не запустят его на своем домашнем ПК, а подключат к сети. Я знаю, что могу определить, к какому сетевому имени они могут быть присоединены, но каков правильный подход для гарантии того, что сеть действительно является НАШЕЙ сетью? Есть ли какой-нибудь отпечаток, который я могу встроить в само приложение, чтобы определить, является ли сеть нашей рабочей сетью?

Ответы [ 2 ]

1 голос
/ 20 апреля 2011

Черт возьми, ты это имел ввиду. Руководитель встречает столик вместо меня. Что вам нужно, это сервер лицензий. Вы явно описываете ситуацию с лицензией компании! Есть ли в вашей сети MSSQL-сервер?

  • Создать пользователя как your_program_nameLCU (пользователь проверки лицензии)
  • Создать базу данных, в которой у пользователя есть права на чтение
  • Создать Try-Catch для ситуации, когда база данных недоступна
  • Очевидно, он не в вашей сети, поэтому закройте программу!

Дополнение к этому:

Очень хорошо работает с VPN! И я думаю, что это тоже нужно!

1 голос
/ 19 апреля 2011

Если вам нужна только базовая проверка имени сети, вы можете просто использовать идентификационное имя (WindowsIdentity.GetCurrent().Name), которое должно содержать DOMAIN \ username. Если у вас есть такое множество способов разделить строку и получить имя DOMAIN (см. Встроенный помощник для анализа User.Identity.Name в Domain \ Username ).

Как упомянул wegginho в комментариях, хотя кто-то теоретически может установить имя своей сети в той же сети.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...