<< Click to Display Table of Contents >> Администрирование (Linux) > Сопровождение работы системы > Сопровождение мобильных решений > Настройка плагинов Разработка плагинов |
Разработка собственных плагинов ведется в Microsoft Visual Studio.
Для написания плагинов используется IPlugin и его дочерние интерфейсы:
•IDeviceValidationPlugin – для проверки устройств, с которых выполняется вход;
•IContainerReaderPlugin – для работы с файлами, поддерживающими распаковку, например, архивы, письма с вложениями и т.д.;
•IRemoteSignPlugin – для подписания в облаке.
Примечание. Работа с контейнерами и подписание в облаке не поддерживается в Directum Jazz.
Создайте новый проект на основе шаблона Visual Studio: 1.Запустите программу Microsoft Visual Studio. 2.На вкладке File нажмите на кнопку Create a new project. Откроется окно «New Project». 3.В дереве настроек последовательно разверните вкладки: •Installed; •Templates; •Visual Basic – для разработки на языке Visual Basic; •Visual С# – для разработки на языке C#. 4.В списке шаблонов выберите пункт Class Library (.NET Framework). 5.Укажите наименование, соответствующее назначению плагина и оканчивающееся на «Plugin». В результате будет создан новый проект на основе выбранного шаблона: 6.Созданный по умолчанию класс Class1 переименуйте именем создаваемого плагина, т.к. он будет отображаться в настройках сервиса NOMAD, и добавьте для него наследование от одного из интерфейсов плагинов. 7.Для разрешения типа используемого интерфейса, а также используемых в нем типов, подключите к проекту соответствующие сборки, например NpoComputer.Nomad.Contract и NpoComputer.Nomad.Contract.Models. Для этого: a)В контекстном меню узла References выберите пункт AddReference. b)В открывшемся окне перейдите на вкладку «Browse»: c)Нажмите на кнопку Browse…. Откроется диалог выбора файлов. d)Выберите необходимую сборку из каталога bin установленного сервиса NOMAD. Каталог сервиса NOMAD может быть перенесен на текущий компьютер копированием с рабочего сервера или предварительно развернут на текущей компьютере. При успешной загрузке сборка будет отображаться в дереве проекта в узле References. 8.В контекстного меню сборки выберите пункт Properties. 9.В параметре Copy Local установите значение False: 10.В контекстном меню проекта выберите пункт Properties. 11.Перейдите в раздел «Application» и в поле Target frameworks установите значение .NET Framework 4.6. Эта версия соответствует версии подключаемых сборок сервиса NOMAD: 12.Реализуйте методы выбранного интерфейса. |
Не используется в качестве самостоятельной точки расширения. Предоставляет метод Initialize – инициализация плагина. Метод Initialize – инициализация плагина Синтаксис: void Initialize(); Описание: Метод вызывается при запуске сервиса NOMAD. |
Предоставляет метод ValidateDevice – выполнить проверку устройства. Метод ValidateDevice – выполнить проверку устройства Синтаксис: void ValidateDevice(IDevice device, IUserInfo userInfo); Параметры: •device – информация об устройстве, с которого выполняется подключение в виде объекта класса IDeviceInfo; •userInfo – информация о пользователе в виде объекта класса IUserInfo. Описание: Метод вызывается при входе пользователя с устройства, не отмеченного как разрешенное. На основе информации об устройстве и пользователе метод позволяет разрешить или запретить вход с устройства. Дополнительно можно реализовать проверку по второму фактору защиты, например, через отправку письма на электронную почту пользователя с описанием действий для разрешения или запрета входа с устройства. Разрешение или запрет входа с устройства осуществляется с помощью типа IValidationDeviceManager. Если вход пользователя с устройства не осуществляется, метод генерирует исключение NomadException. В результате проверки возможны варианты: •устройство отмечено как разрешенное – будет выполнен вход с устройства; •устройство отмечено как запрещенное – сообщение исключения будет записано в лог-файл, и клиентскому приложению будет отправлена команда удаления данных из приложения; •не удалось выполнить проверку или она еще не завешена – в клиентском приложении будет отображено сообщение с причиной неудачного входа. Класс IDevice – информация об устройстве Свойства:
Класс IUserInfo – информация о пользователе Свойства:
Класс IValidationDeviceManager – разрешение или запрет входа с устройства Класс может быть получен с помощью вызова: var deviceManager = Dependency.Resolve<IValidationDeviceManager>(); Класс предоставляет методы для разрешения или запрета входа с устройства по его идентификатору: •EnableDevice – пометить устройство с идентификатором deviceId как разрешенное. Синтаксис: void EnableDevice(long deviceId); •DisableDevice – пометить устройство с идентификатором deviceId как запрещенное. При следующей попытке входа на устройство будет отправлена команда удаления данных приложения. Синтаксис: void DisableDevice(long deviceId); •GetDevice – получить информацию об устройстве с идентификатором deviceId. Синтаксис: IDevice GetDevice(long deviceId); Устройства, используемые пользователем, хранятся в таблице базы данных NOMADUserDevices. Исключение NomadException – ошибка входа пользователя с устройства Синтаксис: public NomadException(int errorCode, ErrorOption option, string message); Параметры: •errorCode – код ошибки: •option – параметры ошибки; •message – текстовое сообщение. |
Предоставляет методы: •GetContainer – получить файловый контейнер; •GetSupportedExtensions – получить список расширений документов, которые может обрабатывать плагин. Метод GetContainer – получить файловый контейнер Синтаксис: IContainer GetContainer(Stream stream); Параметры: •stream – исходный документ в виде потока. Возвращаемое значение: Файловый контейнер в виде интерфейса IContainer. Метод GetSupportedExtensions – получить список расширений документов, которые может обрабатывать плагин Синтаксис: IEnumerable<string> GetSupportedExtensions(); Возвращаемое значение: Список расширений, которые может обрабатывать плагин, в виде строк. IContainer – интерфейс, представляющий отдельный контейнер Предоставляет методы: •GetEntries – получить объекты верхнего уровня; •GetChildEntries – получить дочерние объекты текущего объекта; •GetEntryStream – получить содержимое объекта. GetEntries – получить объекты верхнего уровня Синтаксис: IEnumerable<IContainerEntry> GetEntries(); Возвращаемое значение: Объекты верхнего уровня в виде списка объектов класса IContainerEntry. GetChildEntries – получить дочерние объекты текущего объекта Синтаксис: IEnumerable<IContainerEntry> GetChildEntries(string entryKey); Параметры: •entryKey – ключ текущего объекта в контейнере. Возвращаемое значение: Дочерние объекты в виде списка объектов класса IContainerEntry. GetEntryStream – получить содержимое объекта Синтаксис: Stream GetEntryStream(string entryKey); Параметры: •entryKey – ключ объекта в контейнере. Возвращаемое значение: Исходный документ в виде потока. Класс IContainerEntry – информация об объекте контейнера Свойства:
|
Позволяет подписывать документы в облаке и с помощью SIM-карты. Предоставляет методы: •SignDocument – подписать документ; •GetSignStatus – получить статус текущей операции подписания; •GetCertificates – получить сертификаты пользователей, которые могут подписывать документы через плагин; •GetUserCertificates – получить сертификаты одного пользователя. Примечание. В Directum Solo и Directum Jazz не поддерживается показ диалогового окна. SignDocument – подписать документ Синтаксис: string SignDocument(long userId, long seanceId, long certificateId, DocumentModel document, Stream data, ContentType contentType); Параметры: •userId – идентификатор пользователя в системе Directum RX; •seanceId – идентификатор текущего сеанса, связанного с устройством пользователя; •certificateId – идентификатор сертификата, которым выполняется подписание; •document – информация о подписываемом документе; •data – подписываемые бинарные данные; •contentType – тип подписываемых данных (Document – документ, Attributes – атрибуты). Возвращаемое значение: Идентификатор операции, по которому в дальнейшем можно получить результат подписания. GetSignStatus – получить статус текущей операции подписания Синтаксис: SignStatus GetSignStatus(string operationId); Параметры: •operationId – идентификатор операции, полученный при вызове SignDocument. Возвращаемое значение: Статус операции подписания. При успешном завершении операции – результат подписания. GetCertificates – получить сертификаты пользователей, которые могут подписывать документы через плагин Синтаксис: Dictionary<long, HashSet<Certificate>> GetCertificates(); Возвращаемое значение: Словарь, где key – идентификатор пользователя, value – коллекция сертификатов. GetUserCertificates – получить сертификаты одного пользователя Синтаксис: IReadOnlyCollection<Certificate> GetUserCertificates(long userId); Параметры: •userId – идентификатор пользователя в системе Directum RX; Возвращаемое значение: Сертификаты пользователя, где key – идентификатор пользователя. |
© Компания Directum, 2024 |