Запуск приложения через форму авторизацииИсточник: Accessoft
В этой статье рассмотрим один из способов защиты приложения Access. Речь пойдет о входе в базу через ввод пароля, или говоря иначе - авторизация. В Access предусмотрена возможность задать пароль на базу данных: Сервис - Защита - Задать пароль базы данных . Однако сам пароль хранится в системном реестре в незашифрованном виде, и чтобы открыть такую защищенную базу, достаточно лишь зайти в реестр и прочитать его. Мы же попробуем создать аналогичный интерфейс, но уже с зашифрованным паролем, причем сделаем так, чтобы при попытке открыть форму, если пользователю удалось войти в базу, минуя стартовую форму авторизации, база аварийно закрывалась. Для этого нам понадобится в служебной таблице, например tAdminCop, завести поле Password, в котором будем хранить пароль, а так же модуль шифрования пароля - AdminPassword. Схема авторизации следующая:
В модуле Constants задана константа логического типа. При правильном пароле она принимает значение True, при ложном (по умолчанию) - соответственно False. В событие формы frmStart есть такая процедура: Private Sub Form_Open(Cancel As Integer) Как видно, если flgEnabled = False, то, стало быть, выход из приложения. Таким образом, и делается невозможность открытия формы без ввода пароля. Если аналогичные процедуры повесить на остальные формы, отчеты, то единственной лазейкой для "врагов" останутся только таблицы, у которых, к сожалению, нет никаких событий, которые можно бы было перехватить. Единственной защитой для них будет скрытие окна приложения и установка защиты от Shift. Public Const flgEnabled = True И все, никакой защиты. Защита шифрованием пароля будет зависеть от сложности шифрования. Я показал лишь простейший пример (модуль AdminPassword). Вообще, стоит поискать в Интернете, или попытаться придумать самому более хитрый (стойкий) алгоритм шифрования. Запускаем приложение. Появляется форма авторизации. Вводим 123456, жмем ввод - открывается стартовая форма. Теперь попробуем открыть форму frmStart без ввода пароля. Запускаем приложение, удерживая Shift - открывается окно проекта Access. Пытаемся запустить frmStart - приложение закрывается. Используя защиту от Shift и вход через форму авторизации, можно здорово попортить нервы всем любителям лазить куда не следует. Но допустим, Вы решите установить (продать) свою программу кому - либо. Как сделать так, чтобы он не смог распространять ее без Вашего ведома? Иными словами, как организовать сервис регистрации программы ? Об этом в следующей статье... Пример, как это все работает, Вы можете скачать ниже. |