#c_sharp
Всем привет! Разрабатываю одну программу (с платной подпиской), хочу сделать так, чтобы программа брала все библиотеки с моего сервера (при отсутствии подписки - библиотеки не должны быть доступны). У меня два вопроса: Как динамически подключить dll, которая находится на сервере, при запуске программы? Как сделать так, чтобы данные dll были доступны только из моей программы? Чтобы просто так скачать их было нельзя.
Ответы
Ответ 1
То, что вы хотите сделать, называется RPC. Другими словами вы отправляете на сервер название функции и её параметры, а в ответ получаете результат выполнения функции. Самый удобный механизм RPC называется SOAP. Удобен он тем, что сервер предоставляет описание функций в виде WSDL файла, на основе которого может быть сгенерирован код на любом языке. К примеру, если сервер поддерживает, то можно вызвать функцию sumOfTwoNumber(5,6) и она вернёт 11. При этом сгенерированный код сам преобразует функцию и параметры в формат понятный серверу, передаст на сервер и получит от сервера ответ. Насколько я помню, в C# можно подключать веб-сервисы (человеческое название SOAP) как простые пакеты. Нужно иметь ввиду, что данные между клиентом и сервером передаются в формате XML, из-за чего трафик может быть большим и медленным. А без интернета функции и вовсе работать не смогут.Ответ 2
А программа-то что из себя представляет? ASP.Net приложение? А что за Dll? .Net сборка или Win32 dll? В первом случае взломать защиту довольно легко. Во втором см. методы защиты нативных Win32 приложений. Единственный годный вариант защиты для чисто .Net онлайн-приложения - вынесение части функций в какие-нибудь сервисы на Вашем сервере, к которым будут обращаться подписчики со своими аутентификационными токенами.
Комментариев нет:
Отправить комментарий