Chirag Sudra Ответов: 1

Запретить клиенту использовать веб-приложение & DB на другой машине


Привет Друзья,

Я разработал проект MVC и должен разместить его в интрасети клиента, и там нет никаких ограничений для пользователей и т. д. Но я хочу заблокировать клиент, чтобы скопировать проект и использовать его на другой машине/сервере. Он должен быть размещен только в 1 месте.

Есть ли какой - нибудь способ сделать это?

Заранее спасибо.
С уважением

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

Я пробовал с уникальным ключом хранить ключ в каком-то локальном файле или в базе данных, но это можно скопировать с помощью project &Database.

1 Ответов

Рейтинг:
1

Ziee-M

Привет Чираг,

Одним из решений(используя уникальный ключ, аналогичный вашему предыдущему решению) является создание консольного/настольного приложения, которое разблокирует установленное приложение MVC.
Вот как это работает :
1/сгенерируйте серийный номер, специфичный для ПК/сервера, с помощью класса ManagementClass

public static String GetProcessorId()
  {

      ManagementClass mc = new ManagementClass("win32_processor");
      ManagementObjectCollection moc = mc.GetInstances();
      String Id = String.Empty;
      foreach (ManagementObject mo in moc)
      {

          Id = mo.Properties["processorID"].Value.ToString();
          break;
      }
      return Id;

  }

Теперь, когда вы просто получаете processor_ID, вам нужно что-то более жизнеспособное.
Вы можете получить производителя, идентификатор процессора,адрес Mac ...
Более подробная информация о компании
Получить информацию об аппаратном обеспечении компьютера с помощью C#[^]
После того, как вы создадите свой собственный последовательный генератор.
2/Вы запускаете свой SerialGen (консольное/настольное приложение) на целевой машине и сохраняете его в файле DB...

3/в вашем приложении MVC Application_Start () вы генерируете серийный номер и сравниваете его с тем, который был сохранен с помощью вашего SerialGen.

*ofc, серийный номер не будет работать ни в одной другой машине, так как он связан с той, на которой он был создан.

Вот и все.

Это решение работает только в том случае, если у вас есть доступ к целевой машине.
Несколько лет назад я использовал нечто подобное, но вместо того, чтобы запускать SerialGen на целевой машине, я отправляю данные с помощью сервиса и проверяю, есть ли у этой машины лицензия.

Надеюсь, это поможет.

PS: вам нужно добавить ссылку на System.Management.
Щелкните правой кнопкой мыши на ссылках в обозревателе решений -> Добавить ссылку.
На.Вкладку "Сеть", выберите пункт "Система".Управления и нажмите OK.