Многие разработчики начинают с поиска библиотек UI‑компонентов, когда им нужно отображать документы в веб‑приложении. Doconut Viewer — это .NET SDK для добавления безплагинного просмотра в браузере в проекты ASP.NET Core, MVC или классические WebForms. Безопасность по‑прежнему зависит от полной архитектуры приложения: аутентификации, авторизации, транспорта, хранения, валидации, очистки, обновлений и мониторинга.

1. Установите SDK Doconut App и подготовьте ваш .NET‑проект к работе с множеством форматов файлов
1.1 Добавьте поддерживаемый пакет
Используйте текущий пакет и инструкции по установке со официальной страница загрузки Doconut: зафиксируйте выбранную версию и убедитесь, что она поддерживает целевую среду выполнения .NET.
1.2 Проверьте ссылку на пакет
После установки подтвердите ссылку на пакет и разрешённую версию в файле проекта. Явное указание версий помогает делать сборки и развертывания воспроизводимыми.
1.3 Включите HTTPS
Запускайте приложение по HTTPS, чтобы загруженные документы не передавались в открытом виде по вашей сети. Для приложения, размещённого на Kestrel, добавьте конфигурацию конечной точки в appsettings.json:
{
"Kestrel": {
"Endpoints": {
"Https": {
"Url": "
}
}
}
}
Если вы размещаете приложение на IIS, привяжите к сайту сертификат HTTPS. При включённом HTTPS файл передаётся по защищённому каналу к вашему серверу, где SDK его рендерит.
Откуда берётся безопасность. SDK работает внутри вашего приложения, на вашей инфраструктуре: он не делает вызовов к серверам Doconut, поэтому документы никогда не покидают вашу сеть. Это свойство, вокруг которого стоит проектировать. Это не сертификат соответствия — SDK не поставляется с собственным подтверждением ISO 27001, SOC 2 или HIPAA и не может предоставить его вашему приложению. То, что он делает, — удерживает файл внутри границы, которую вы уже контролируете и уже проверяете.
2. Настройте безопасную загрузку файлов и их хранение для управления документами
Это часть, которая относится к вам, а не к SDK, и стоит сказать откровенно: безопасность транспорта, шифрование в состоянии покоя, хранение и очистка — решения, принимаемые вашим приложением. SDK рендерит документы; он не является уровнем хранения и не шифрует ваш диск за вас.
2.1 Зарегистрируйте сервисы
В Startup.cs (или Program.cs в современном .NET) зарегистрируйте сервисы Doconut в контейнере внедрения зависимостей согласно документации для установленной версии. Когда SDK требуется рабочая папка для временного вывода рендеринга, укажите путь, которым вы управляете, и возьмите на себя очистку этой папки — плановое задание или управляемый приложением жизненный цикл, а не предположение.
2.2 Создайте конечную точку загрузки
Реализуйте действие контроллера, которое принимает загруженный файл, сохраняет его в хранилище, используемое вашим приложением, и возвращает короткий одноразовый токен. Токен используется клиентским просмотрщиком для получения и рендеринга документа. Учтите, что хранение — ваша ответственность: вы передаёте SDK байты или путь в момент рендеринга, а он возвращает вам страницы.
2.3 Защитите конечную точку
Поскольку конечная точка загрузки работает с конфиденциальными данными, защитите её аутентификацией и авторизацией на основе ролей (например, только пользователи с ролью DocumentViewer могут загружать). Проверяйте расширение и размер на стороне сервера, а также в браузере, и рассматривайте загруженные байты как недоверенный ввод.
Не пропускайте это, полагая, что SDK покрывает эту задачу. Шифрование в состоянии покоя, управление ключами и очистка оставшихся файлов — задачи вашего приложения. Если вам нужны документы, зашифрованные на диске, используйте платформенные средства, которым вы уже доверяете — просмотрщик здесь не место.
3. Встраивание компонента Viewer в ASP.NET Core, MVC или WebForms
С готовой серверной частью инициализируйте просмотрщик, используя ресурсы и API, описанные в документации для установленной версии Doconut.
3.1 Добавление JavaScript‑пакета
В общем макете включите только те ресурсы просмотрщика, которые указаны в документации, соответствующей установленному SDK. Не полагайтесь на фиксированные имена пакетов или их расположение в разных версиях.
3.2 Создание Razor‑представления для Core/MVC
Добавьте представление (например, Views/Document/View.cshtml), содержащее элемент ввода файла, контейнер для просмотрщика и небольшой скрипт, который загружает выбранный файл, получает безопасный токен и инициализирует виджет Doconut Viewer.
Скрипт должен:
- Захватить выбранный файл из элемента
<input type="file">. - Отправить файл на конечную точку загрузки, используя
fetchилиXMLHttpRequest. - Когда придёт авторизованный ответ, инициализировать просмотрщик с помощью поддерживаемого API установленной версии.
3.3 Эквивалент для WebForms
На странице WebForms (например, DocumentViewer.aspx) разместите элемент asp:FileUpload, кнопку для запуска загрузки и <div>, в котором будет размещён просмотрщик. В код‑бихайнд вызовите сервис Doconut для сохранения загруженного файла, получите токен и зарегистрируйте стартовый скрипт, вызывающий JavaScript‑функцию (initViewer(token)) для создания экземпляра просмотрщика.
Причина такой реализации: один путь рендеринга обслуживает три модели UI .NET, без необходимости установки чего‑либо на машине конечного пользователя.
4. Настройка Viewer для управления документами
Viewer отображается внутри контейнера на вашей странице, поэтому окружающее приложение уже принадлежит вам. Кроме того, берите имена параметров и их значения из документации к установленной версии, а не из какого‑либо учебника, включая этот — поверхность конфигурации меняется между релизами, и жёстко закодированное имя параметра скорее всего сломается при обновлении.
Вопросы, которые стоит решить заранее:
4.1 Какие элементы управления получает пользователь
Определите, должны ли пользователи иметь возможность скачивать оригинальный файл или только просматривать отрендеренные страницы. Управляемая печать является частью просмотрщика, а не отдельной покупкой, поэтому правила печати — это вопрос конфигурации, а не лицензирования.
4.2 Какие плагины действительно нужны
Четыре из них лицензируются отдельно, и список достаточно короток, чтобы его запомнить: Annotation, Converter, DICOM и Search. Конвертация — DOC в PDF и прочее — реализована плагином Converter. Поиск по тексту — плагин Search. Если вам не нужны ни один из них, вы их не покупаете.
4.3 Локализация
Если ваше приложение многоязычное, проверьте, какие строки UI просмотрщика доступны в установленной версии, прежде чем проектировать собственный интерфейс.
Почему это важно: просмотрщик должен выглядеть как часть вашего продукта. Он не должен тихо обещать пользователям возможности, которые не включены в вашу лицензию.
5. Тестирование интеграции для всех поддерживаемых форматов
Перед запуском в продакшн выполните быструю проверку для каждого типа файлов, которые ваши пользователи будут просматривать. С помощью просмотрщика Doconut App откройте образец каждого формата и убедитесь, что рендеринг, навигация и специализированные инструменты работают согласно описанию.
| Формат | Сценарий теста | Ожидаемый результат |
|---|---|---|
| Большой многостраничный отчёт с встроенными изображениями | Плавная прокрутка, масштабирование и точная цветопередача | |
| DOCX | Word‑документ с таблицами и сносками | Видимы весь текст, таблицы и сноски; отсутствие сдвигов макета |
| XLSX | Электронная таблица с диаграммами | Диаграммы отображаются векторно; при масштабировании сохраняется чёткость |
| PPTX | Презентация со анимированными построениями | Каждое построение отображается в стеке на одном кадре — это ожидаемо, а не ошибка |
| DWG | Технический чертёж с слоями и внешними ссылками | Переключение слоёв, работа измерения расстояний и площадей; внешние ссылки и шрифты SHX отсутствуют, так как их нет в файле |
| PSD | Многослойный файл Photoshop | Отображается сохранённый композит, скрытые слои остаются скрытыми; цвета сохраняются при масштабировании |
| SVG | Векторная графика с градиентами | Градиенты рендерятся плавно; при масштабировании остаётся чёткой |
| TIFF | Скан высокого разрешения | Изображение загружается быстро; при масштабировании раскрываются детали |
Тестируйте реальными файлами ваших пользователей, а не чистыми образцами. Форматы, которые удивляют людей, обычно имеют собственные особенности — DWG, ссылающийся на четыре других чертежа, таблица, значения в которой никогда не пересчитывались, или презентация, в которой шрифты не были вложены. Бесплатный просмотрщик на Doconut.app использует тот же движок, поэтому это быстрый способ увидеть, как конкретный «проблемный» файл будет выглядеть, прежде чем писать код.
Заключение
Встраивание просмотрщика документов без плагинов сводится к четырём вещам: установить SDK, обеспечить безопасный путь загрузки, отрисовать его в контейнере на вашей странице и настроить только то, что описывает установленная версия. Вклад просмотрщика в безопасность ограничен, но реален — он работает на ваших серверах и ничего не отправляет наружу. Всё остальное в этом списке относится к вашему приложению, и никакой SDK не сможет взять это на себя за вас.
Готовы оценить его? Начните с официальной страницы загрузки и документации Doconut, затем протестируйте SDK в рамках того же обзора безопасности, который применяется к остальной части вашего Windows‑based ASP.NET приложения.