Поиск по блогу

среда, 28 декабря 2016 г.

Работа с base64 при разработке веб-сервиса

Допустим, у вас имеется веб-портал, который генерирует печатную форму в формате doc/docx. Генерация печатной формы происходит на стороне сервера - вызывается веб-сервис, который возвращает строку base64.

Для отладки такого веб-сервиса потребуется:
  • Google Chrome
  • Notepad++
Откройте страницу веб-портала с данным функционалом в браузере Google Chrome и вызовите панель отладки, нажав на F12. Выполните команду формирования печатной формы (т.е. команду, которая отвечает за вызов веб-сервиса), после этого действия в окне отладки отразится пункт с информацией по выполнению команды (информация о выполнении POST-запроса) (см. рисунок 1).
Рисунок 1. Панель отладки Google Chrome

воскресенье, 25 декабря 2016 г.

Валидация сертификата при проверке подписи XMLDSIG

В статье Проверка подписи XMLDSIG на примере СМЭВ рассказывается про проверку электронной подписи (ЭП) формата XMLDSIG. Как показала практика, метод Verify() объекта SignedXML не выполняет валидацию (действительность) сертификата ЭП.

Проверить действительность сертификата каждой электронной подписи, которой подписан XML документ, можно с помощью свойства Signers того же объекта SignedXML. Коллекция Signers заполняется в порядке следования элементов, найденных XPath-запросом. По умолчанию используется следующий запрос:
"//*[local-name()='Signature' and namespace-uri()='http://www.w3.org/2000/09/xmldsig\#']".

Важно, свойство Signers доступно только после проверки подписи. Данное свойство содержит коллекцию подписей, для которых доступен ограниченный набор свойств:
  • можно узнать статус подписи при помощи свойства Signer.SignatureStatus;
  • получить информацию о сертификате ключа подписи при помощи свойства Signer.Certificate.
Свойство Signer.Certificate содержит объект Certificate. У данного объекта есть метод IsValid(), который выполняет проверку действительности сертификата и возвращает объект CertificateStatus, содержащий результат проверки.

вторник, 20 декабря 2016 г.

Ошибка получения объекта com: отказано в доступе.

Данная ошибка возникла при использовании библиотеки, например HASP, которая была зарегистрирована с помощью COM+. Такая регистрация помогает использовать 32 разрядные библиотеки на 64 разрядных серверах. Подробное описание действий по регистрации библиотек легко найти на просторах интернета.

После регистрации не всегда проходит все гладко по созданию COM объекта. Может возникнуть ошибка доступа к COM объекту, которая звучит примерно так:

Ошибка получения объекта COM: отказано в доступе.

Что бы избавиться от ошибки, откройте оснастку "Службы компонентов". Раскройте дерево служб и в ветке COM+ найди нужную службу, откройте её свойства (см. рисунок 1).
Рисунок 1. Свойства приложения COM+

воскресенье, 11 декабря 2016 г.

СКД. Оформление ресурса для итогов

Задача


Отчет выводит информацию о оборотах номенклатуры . Требуется в отчете выводить итоговое поле оборота в формате: представление 0 как ноль, разделитель групп - пробел, группировка по три знака, в конце числа добавить приставку "шт.".

Реализация


Задачку можно решить несколькими способами. первый способ, который приходит в голову - это добавление предопределенного макета в отчет. На вкладке Макеты окна конструктора схемы компоновки данных добавляется макет группировки и для поля оборотов задается форматирование (см. рисунок 1).
Рисунок 1. Пример форматирования поля Остаток