Если свойства UsersTableName и LoginNameField не заданы, то в таком виде компоненту
можно использовать при соединении с SQL-сервером, который сам обеспечивает проверку
прав пользователя.
Вызовите метод ChangePassword для предоставления пользователю возможности сменить
его пароль.
Applies to
TDBSecurity component
Declaration
property UsersTableName: TFileName;
Description
Задает имя таблицы в БД Database, которая содержит информацию о пользователях.
Поле LoginNameField в этой таблице должно содержать входные имена или идентификаторы
пользователей, по которым их можно идентифицировать.
Applies to
TDBSecurity component
Declaration
property LoginNameField: string;
Description
Определяет имя поля в таблице с именем UsersTableName из БД Database, используемое
для идентификации пользователя по введенному имени.
!!! Должен существовать индекс по этому полю.
Applies to
TDBSecurity component
Declaration
property OnCheckUser: TCheckUserEvent;
Description
Событие для проверки прав пользователя.
К моменту вызова этого события пользователь уже найден в таблице UsersTableName
по введенному им имени и полю LoginNameField, то есть таблица UsersTable позиционирована
на нужную запись.
Остается прочитать нужные поля и сделать вывод о результатах проверки, не забыв
вернуть нужное логическое значение. Можно также сохранить где-нибудь необходимую
информацию о текущем пользователе.
Событие вызывается и в том случае, если таблица UsersTableName не задана.
В обработчике события OnCheckUser Вы можете использовать значение свойства LoggedUser,
которое содержит имя пользователя, введенное им в диалоге регистрации.
Applies to
TDBSecurity component
Declaration
function ChangePassword: Boolean;
Description
Вызывает диалог "Смена пароля". Важно правильно обработать событие
OnChangePassword. Вы должны самостоятельно произвести в том событии все необходимые
действия для смены пароля пользователя в базе данных. Например, вы можете выполнить
соответствующий SQL-оператор или сделать необходимые изменения в таблицах БД.
Applies to
TDBSecurity component
Declaration
property OnChangePassword: TChangePasswordEvent;
Description
Событие для смены пароля.
К этому моменту проверено, что оба новых пароля совпадают, а UsersTable позиционирована
на запись с текущим пользователем.
Нужно проверить, что введенный старый пароль валиден и произвести изменения
в таблице.
Declaration
property Database: TDatabase;
Description
Указывает на компоненту TDatabase, задающую БД, которая, возможно, содержит
таблицу UsersTableName с именами, паролями, правами и другой необходимой информацией
о пользователях.
Declaration
procedure Lock;
Description
Метод предназначен для "блокирования" приложения.
При вызове метода Lock приложение минимизируется и при попытке восстановления
его размеров выводит диалог ввода пароля. Вы можете обработать введенный пользователем
пароль в событии OnUnlock.
Declaration
procedure Lock;
Description
Метод предназначен для "блокирования" приложения.
При вызове метода Lock приложение минимизируется и при попытке восстановления
его размеров выводит диалог ввода пароля. Вы можете обработать введенный пользователем
пароль в событии OnUnlock.
Declaration
property OnUnlock: TCheckUnlockEvent;
Description
Событие вызывается для проверки введенного пользователем пароля при разблокировании
приложения, предварительно заблокированного методом Lock.
Вы должны вернуть False из вашего обработчика события OnUnlock для того, чтобы
запретить разблокирование приложения.
Example
function TMainForm.SecurityChangePassword(UsersTable: TTable;
const OldPassword, NewPassword: String): Boolean;
begin
Result := False;
if SecurityCheckUser(UsersTable, OldPassword) then begin
with UsersTable do begin
Edit;
FieldByName('PASSWORD').AsString := CryptString(PswdKey, NewPassword);
Post;
Result := True;
end;
end;
end;