Как ограничить сборку .Net для запуска на определенных машинах

StackOverflow https://stackoverflow.com/questions/871322

  •  22-08-2019
  •  | 
  •  

Вопрос

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

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

Каковы различные способы обеспечения соблюдения этой политики?

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

Решение

Одна идея:Можно использовать ключ реестра, который должен присутствовать для запуска.

Другой:Для запуска может потребоваться установка сертификата X509 в хранилище ключей.

Другой:Используйте System.Security.Permissions и ограничьте работу набором пользователей или группой.

и т. д.

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

Существует несколько способов управления доступом к сборкам.

Мы защищаем наши сборки на основе лицензии, поэтому только рабочие станции с лицензией могут запускать сборки.

Мы разрешаем разработчикам запускать отладочную сборку без проверки.Мы, конечно, строго контролируем отладочные сборки.при необходимости вы можете включить дополнительные проверки в отладочные сборки для большей безопасности.Или выдать лицензии разработчикам.

Для наших отладочных сборок мы добавляем лицензию в отладочный код, завернутый в «#IF DEBUG», чтобы гарантировать, что она не будет скомпилирована в выпускную сборку.

Я не говорю, что это лучший способ, но именно этот метод мы используем.

Я предполагаю, что вы ищете простую отказоустойчивую систему, а не герметичный контроль доступа...

Поместите имя машины в файл конфигурации и сравните его с именем машины при запуске приложения.Таким образом, вы не сможете по ошибке запустить его где-либо еще, и его достаточно легко изменить при разработке или при перемещении приложения.

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