|
Аутентификация пользователя в отчете
Два объекта Rave Reports позволяют
включить в проекте отчета механизм проверки имени пользователя
и пароля. Это объекты Simple Security Controller
(элемент simpleSecurity) и
Data Lookup Security Controller (элемент LookupSecurity),
которые доступны для выбора в диалоге создания объектов
доступа к данным визуальной среды Rave Reports (см.
рис. 24.4). Создается новый объект командой File
| New Data Object главного меню Rave Reports. Созданный
объект появляется в ветви Data View Dictionary дерева
проекта.
Элемент SimpleSecurity
предназначен для хранения списка пользователей и их
паролей. Он имеет свойство userList,
в котором в формате userName = Password
заносятся имена и пароли пользователей.
Элемент LookupSecurity обеспечивает
загрузку имен пользователей и паролей из таблицы базы
данных. Для этого к нему через свойство
Dataview должен быть подключен соответствующий
просмотр данных. В свойстве userField
необходимо указать поле, которое содержит имена пользователей,
а в свойстве PasswordField задать
поле с паролями.
Теперь несколько слов о том, как подключить
созданные объекты.
Вы можете организовать аутентификацию
на двух уровнях — уровне проекта и уровне отчета. В
обоих случаях используется свойство securityControl
объекта проекта или отчета. В нем необходимо выбрать
нужный объект аутентификации.
Однако это действие не сделает ваши
отчеты сколько-нибудь защищеннее — все необходимые проверочные
операции придется написать самому в исходном коде приложения
Delphi. Единственное отличие в аутентификации по уровням
в том, где именно вы сможете получить доступ к объекту
аутентификации — из компонента проекта или отчета.
Для организации простейшей проверки
имени пользователя и пароля на уровне проекта в приложении
нужно написать примерно такой код:
rpReport.Open; if
rpReport.ProjMan.SecurityControi.IsValidUser(
edUserName.Text,
edPassword.Text}
then rpReport.Execute
else ShowMessage('Доступ
запрещен');
rpReport.Close;
В данном случае доступ к объекту аутентификации
SecurityControд (класс TRaveBaseSecurity)
осуществляется через объект менеджера проекта
projMan (класс TRaveProjectManager).
Метод
function IsValidUser(AUserName:
string;
APassword: string):
Boolean;
этого объекта возвращает значение True,
если переданные в параметрах имя и пароль не совпадают
со значениями из списка или базы данных.
Для уровня отчета код выглядит так:
rpReport.Open;
if rpReport.ProjMan.ActiveReport.
SecurityControl.IsValidUser(
edUserName.Text,
edPassword.Text)
then rpReport.Execute
else ShowMessage('Доступ
запрещен');
rpReport.Close;
Здесь объект ActiveReport
(класс TRaveReport) представляет
текущий отчет.
|