
Учебник: безопасное внедрение Doconut Viewer с React – от начала до конца
Внедрение просмотрщика документов безопасно требует большего, чем простое копирование фрагмента middleware в приложение ASP.NET Core. Интеграция должна чётко определять границы аутентификации, доступа к документам, управления сеансами, рендеринга, аннотаций, поиска, печати и аудита журналов.
Предприятия, создающие порталы, ориентированные на документы — например, DMS, CRM, юридический обзор или инженерные чертежи — также должны хранить оригинальные файлы за границей приложения. Doconut поддерживает серверную модель просмотра PDF, Office, CAD и графических документов, а React‑фронтенд может предоставить пользовательский интерфейс.
Этот учебник сосредоточен на надёжной архитектуре и намеренно избегает названий пакетов, свойств опций, сигнатур методов и путей конечных точек, которые могут различаться между версиями SDK. Используйте официальную документацию, соответствующую вашей лицензированной версии, для точных сведений о регистрации и API.

1️⃣ Шаг 1 – Подготовьте проекты ASP.NET Core и React
Прежде чем писать любой код, убедитесь, что ваша среда разработки удовлетворяет базовым требованиям:
| Требование | Рекомендуемая версия |
|---|---|
| .NET runtime | .NET 6 или новее |
| ASP.NET Core | 6.0+ |
| IDE | Поддерживаемая среда разработки .NET |
| Front‑end (optional) | Приложение React, совместимое с вашим проектом |
- Создайте новый проект ASP.NET Core Web API
dotnet new webapi -n DocPortal
cd DocPortal
-
Add the licensed Doconut dependencies – Obtain the exact package names, versions, native dependencies, and license-loading instructions from the official documentation for your Doconut release. Do not assume that a package or wrapper shown in an unrelated tutorial applies to your version.
-
Prepare the React application – If the viewer will be presented through React, use the front‑end setup already approved by your team. Keep the React application dependent on your own authenticated API rather than on undocumented third‑party wrappers.
-
Commit the initial state – Most enterprise teams enforce a Git policy that requires a signed commit for any change that touches licensing or security settings.
Теперь у вас есть чистое решение, готовое к интеграции Doconut на сервере.
2️⃣ Шаг 2 – Настройте интеграцию сервера безопасно
Зарегистрируйте просмотрщик, используя инструкции, поставляемые для точной версии Doconut в вашем проекте. Порядок middleware, регистрации сервисов, инициализация лицензии и имена конфигурационных свойств зависят от версии и не должны копироваться из непроверенных примеров.
Независимо от версии SDK, окружающее приложение ASP.NET Core должно обеспечивать следующие контрольные меры:
- Authenticate before opening a document – A viewer session must never bypass the application’s identity layer.
- Resolve document identifiers on the server – Accept an application-level document ID, not an arbitrary physical file path supplied by the browser.
- Authorize every operation – Viewing, annotation, search, download, and printing may require different permissions.
- Keep secrets outside source control – Store licenses, connection strings, and encryption material in the approved secret-management mechanism.
- Apply request limits – Set appropriate upload, document-size, timeout, and rate limits around the viewer workflow.
- Record security events – Log access decisions and document actions without writing document contents or sensitive tokens to logs.
Относитесь ко всем настройкам SDK как к версионной конфигурации. Подтвердите их значение в официальной справке перед включением в продакшн.
3️⃣ Шаг 3 – Изолируйте сеансы документов за сервисом приложения
Держите взаимодействия, специфичные для Doconut, внутри выделенного сервисного слоя приложения. Ссылки на класс Viewer полезны на уровне архитектуры, но сигнатуры конструкторов, методы открытия документов, требования к кэшу и поведение обнаружения лицензии должны исходить из документации вашей установленной версии.
Безопасная граница сервиса должна:
- Принимать аутентифицированного пользователя и идентификатор документа уровня приложения.
- Проверять разрешения пользователя для запрашиваемого действия.
- Получать документ из одобренного серверного хранилища.
- Вызывать документированный API просмотрщика для создания сеанса документа.
- Возвращать только минимальную непрозрачную информацию о сеансе, необходимую клиенту.
- Освобождать или истекать сеансы в соответствии с вашими политиками удержания и кэширования.
Браузер никогда не должен получать физический путь к хранилищу, данные лицензии, внутренний ключ кэша или неограниченную ссылку на оригинальный документ.
4️⃣ Шаг 4 – Включите аннотации, поиск и контролируемую печать
Аннотации, поиск, OCR и контролируемая печать должны быть включены только тогда, когда они включены в вашу лицензированную конфигурацию Doconut и поддерживаются установленной версией. Не делайте предположений о названиях методов, форматах сохранения или классах опций.
- Annotations – Decide which roles may create, edit, view, or delete markup. Store annotation state according to the persistence guidance for your SDK version and your own audit requirements.
- Search and OCR – Establish which document types require OCR, where extracted text is retained, and how long indexes remain available. Treat search results as document data and authorize them accordingly.
- Controlled printing – Define page limits, watermark policy, approval rules, and audit events at the application level, then map those requirements to the documented printing capabilities.
Держите эти операции за тем же сервисом приложения, который используется для сеансов документов, чтобы контроллеры оставались тонкими, а бизнес‑правила — тестируемыми.
5️⃣ Шаг 5 – Подключите фронтенд React
Приложение React должно вызывать ваш аутентифицированный API ASP.NET Core, а не принимать пути к хранилищу или подключаться напрямую к внутренним сервисам документов. Определите собственный ресурсно‑ориентированный контракт API вокруг бизнес‑действий и избегайте публикации имён конечных точек, специфичных для SDK, в публичном клиентском контракте.
Типичная последовательность взаимодействия:
- Пользователь выбирает документ, уже видимый в приложении.
- React запрашивает сеанс просмотра, используя ID документа уровня приложения.
- ASP.NET Core аутентифицирует запрос, проверяет разрешения и координирует сеанс просмотрщика.
- React получает только информацию, необходимую для отображения просмотрщика.
- Запросы на аннотации, поиск и печать возвращаются через аутентифицированный API приложения.
- Сервер записывает события аудита и истекает сеанс, когда это необходимо.
В UI React держите состояние сеанса короткоживущим, явно обрабатывайте ошибки авторизации, избегайте размещения чувствительных значений в постоянном хранилище браузера и предоставляйте индикаторы загрузки и ошибки, не раскрывающие внутренние пути или детали исключений.
Это разделение сохраняет рендеринг и управление документами на сервере, тогда как React отвечает за представление и взаимодействие.
Заключение
Разместив интеграцию Doconut за безопасным сервисом ASP.NET Core, вы можете построить портал документов для PDF, Office, CAD и графических рабочих процессов без привязки интерфейса React к недокументированным деталям SDK. Аутентификация, авторизация, жизненный цикл сеанса, поиск, аннотации, печать и политика аудита остаются явными частями вашего дизайна приложения.
Готовы оценить Doconut для вашего .NET проекта? Используйте официальные пакеты, лицензирование и документацию API для выбранной версии, затем примените описанную выше архитектуру и контрольный список безопасности к вашей реализации.