Подключение dll файла через интернет

254
07 июня 2017, 00:58

Всем привет! Разрабатываю одну программу (с платной подпиской), хочу сделать так, чтобы программа брала все библиотеки с моего сервера (при отсутствии подписки - библиотеки не должны быть доступны). У меня два вопроса:

  1. Как динамически подключить dll, которая находится на сервере, при запуске программы?
  2. Как сделать так, чтобы данные dll были доступны только из моей программы? Чтобы просто так скачать их было нельзя.
Answer 1

То, что вы хотите сделать, называется RPC. Другими словами вы отправляете на сервер название функции и её параметры, а в ответ получаете результат выполнения функции.

Самый удобный механизм RPC называется SOAP. Удобен он тем, что сервер предоставляет описание функций в виде WSDL - файла, на основе которого может быть сгенерирован код на любом языке. К примеру, если сервер поддерживает, то можно вызвать функцию sumOfTwoNumber(5,6) и она вернёт 11. При этом сгенерированный код сам преобразует функцию и параметры в формат понятный серверу, передаст на сервер и получит от сервера ответ.

Насколько я помню, в C# можно подключать веб-сервисы (человеческое название SOAP) как простые пакеты. Нужно иметь ввиду, что данные между клиентом и сервером передаются в формате XML, из-за чего трафик может быть большим и медленным. А без интернета функции и вовсе работать не смогут.

Answer 2

А программа-то что из себя представляет? ASP.Net приложение? А что за Dll? .Net сборка или Win32 dll? В первом случае взломать защиту довольно легко. Во втором см. методы защиты нативных Win32 приложений. Единственный годный вариант защиты для чисто .Net онлайн-приложения - вынесение части функций в какие-нибудь сервисы на Вашем сервере, к которым будут обращаться подписчики со своими аутентификационными токенами.

READ ALSO
SharpDX: поворот текста - DirectX

SharpDX: поворот текста - DirectX

Здравствуйте! Возникла проблема при рендеринге текста(TextRender) на связи(Connection) во время зуммирования

176
JS счетчик и смена блока

JS счетчик и смена блока

Здравствуйте! у меня есть 2 странички, одна с отсчетом времени (стоит счетчик), другая с контентомМне нужно чтобы страничка с СЧЕТЧИКОМ, КАЖДЫЙ...

402