Да — вы можете встроить безопасный, безплагинный онлайн‑просмотрщик файлов в любое приложение ASP.NET Core, MVC или WebForms за несколько минут, и Doconut App делает всю тяжелую работу.
Предприятия, обслуживающие контракты, чертежи или дизайнерские материалы, нуждаются в просмотрщике, который соблюдает корпоративные политики безопасности и никогда не заставляет пользователей устанавливать устаревшие плагины браузера. Doconut предоставляет .NET SDK для просмотра PDF, Office, CAD, электронной почты и изображений в браузере. Эта статья описывает решения интеграции без привязки к конкретным версиям примеров кода.

1. Почему безопасность и рендеринг без плагинов важны для .NET‑веб‑приложений
Современные компании рассматривают каждый документ как потенциальный источник утечки данных. Когда вы внедряете просмотрщик, зависящий от ActiveX, Flash или нативного клиента, вы наследуете три риска:
| Риск | Влияние на ваше .NET‑приложение | Как Doconut App устраняет риск |
|---|---|---|
| Plugin dependency | Пользователи вынуждены устанавливать или включать плагин браузера, что приводит к тикетам в поддержку и проблемам с соответствием. | Doconut работает полностью в HTML5/Canvas, требуя нулевых плагинов. |
| Unencrypted transit | Файлы передаются по HTTP или хранятся в открытом виде, нарушая GDPR, HIPAA или внутренние политики. | Все загрузки проходят через SSL и хранятся с шифрованием AES‑256. |
| Uncontrolled lifecycle | Файлы могут оставаться на сервере, увеличивая поверхность атаки. | Doconut автоматически удаляет файлы после просмотра, обеспечивая короткое окно хранения. |
Поскольку просмотрщик поставляется как JavaScript‑компонент, который общается с безопасным сервисом рендеринга Doconut, ваш .NET‑стек остаётся чистым — без дополнительных нативных библиотек, сторонних бинарных файлов и дополнительных аудитов соответствия.
2. Подготовка проекта .NET
Используйте пакет, документацию и примеры, соответствующие выбранной версии Doconut. Официальная страница загрузки Doconut — надёжный стартовый пункт.
Перед интеграцией убедитесь в целевом .NET‑runtime, зафиксируйте версию пакета, храните конфигурацию лицензии вне системы контроля версий и начните с представительных документов. ASP.NET Core, MVC и WebForms имеют разные жизненные циклы приложений, поэтому их настройка не должна рассматриваться как идентичная.
3. Создание безопасной конечной точки загрузки — AES‑256, SSL и автоудаление
Просмотрщик никогда не обращается к файлам напрямую в вашей файловой системе. Вместо этого вы загружаете документ во временное зашифрованное хранилище, которое Doconut читает по запросу. Ниже — высокоуровневое описание необходимых шагов для ASP.NET Core; те же идеи применимы к MVC и WebForms.
Рабочий процесс на стороне сервера
- Принять загруженный файл – Используйте стандартный
IFormFile(илиHttpPostedFileв WebForms) для получения документа от клиента. - Зашифровать файл с помощью AES‑256 – Перед сохранением потока зашифруйте его, используя проверенную библиотеку, например
System.Security.Cryptography.Aes. Сохраните зашифрованный блоб в безопасном месте (например, Azure Blob Storage с включённым серверным шифрованием или S3‑бакет с SSE‑AES256). - Создать короткоживущий подписанный URL – Сгенерируйте URL, действительный несколько минут (например, 5 минут). URL должен быть HTTPS и включать криптографический токен, который может проверить Doconut. Большинство облачных провайдеров предлагают функцию “pre‑signed URL”, подходящую для этой задачи.
- Вернуть подписанный URL клиенту – Отправьте JSON‑ответ, содержащий URL. Клиент передаст этот URL просмотрщику Doconut.
- Запланировать автоудаление – После истечения срока действия подписанного URL фоновая задача (Hangfire, Azure Functions и т.п.) удаляет зашифрованный блоб, гарантируя, что файл не останется на сервере.
Эквиваленты для MVC / WebForms
- MVC – Поместите ту же логику в обычный метод контроллера и верните
JsonResult. - WebForms – Реализуйте обработчик
.ashxили метод страницы, который выполняет те же шаги: принимаетRequest.Files[0], шифрует, генерирует пред‑подписанный URL и пишет JSON‑ответ.
Единственное различие — синтаксис маршрутизации; рабочий процесс безопасности остаётся идентичным.
4. Отображение документа через установленный SDK
Доступ к документу остаётся на сервере, а авторизация проверяется перед обработкой файла или потока. Точная последовательность рендеринга и инициализации UI зависит от версии; следуйте официальной документации, поставляемой с выбранной сборкой, а не копируйте непроверенный глобальный JavaScript API.
Почему это работает для любого .NET‑варианта
- ASP.NET Core Razor – Скрипт находится в том же представлении, где размещена форма загрузки, поэтому процесс полностью прозрачен.
- MVC – Используйте
@section Scriptsдля внедрения того же фрагмента; контроллер возвращает JSON, который может обработать$.ajaxв MVC. - WebForms – Зарегистрируйте скрипт через
ClientScript.RegisterStartupScriptпосле завершения загрузки, затем вызовитеlaunchViewerтем же способом.
Поскольку Doconut потокирует документ напрямую из подписанного URL, сервер больше не взаимодействует с файлом после этапа загрузки. Просмотрщик рендерит PDF, Word, CAD‑чертежи и все остальные форматы, перечисленные в характеристиках продукта, без какой‑либо дополнительной серверной конвертации.
5. Настройка просмотрщика под ваш бренд — тонкая настройка онлайн‑просмотрщика файлов
Корпоративные заказчики часто требуют, чтобы просмотрщик выглядел как нативная часть их портала. Полностью настраиваемый UI Doconut App позволяет:
| Настройка | Как применить в .NET |
|---|---|
| Макет панели инструментов | Передайте toolbar: false и создайте собственные кнопки, вызывающие JavaScript‑API просмотрщика (например, zoomIn(), print()). |
| Цветовая схема | Установите theme: "dark" или подключите пользовательский CSS‑файл, переопределяющий стандартные классы. |
| Язык и доступность | Doconut учитывает атрибут lang у контейнера; также можно добавить ARIA‑метки через параметр accessibility. |
| Хуки событий | Колбэки onPageChange, onError и onDownload позволяют фиксировать метрики использования в вашей существующей системе телеметрии. |
Все эти хуки конфигурируются в том же JavaScript‑объекте, что и в предыдущем разделе. Поскольку просмотрщик полностью работает на клиенте, дополнительной нагрузки на сервер нет — ваш .NET‑бэкенд остаётся сосредоточенным на аутентификации, шифровании и бизнес‑логике.
6. Производительность и масштабируемость — поддержание отзывчивости
Встраивание просмотрщика в портал с высоким трафиком поднимает два практических вопроса: время загрузки и одновременный рендеринг. Doconut App решает обе задачи «из коробки», но вы можете усилить их с помощью нескольких .NET‑специфических приёмов.
| Вопрос | Встроенное преимущество Doconut | Дополнительный совет для .NET |
|---|---|---|
| Первичная загрузка | Скрипт просмотрщика весит ~150 KB в gzipped‑варианте. | Включите сжатие статических файлов (app.UseResponseCompression()) и кеширование (Cache‑Control: public, max‑age=31536000). |
| Потоковая передача файлов | Doconut передаёт только необходимые страницы, используя HTTP‑range запросы. | Храните зашифрованные блобы в региональном CDN (Azure Front Door, Amazon CloudFront) для снижения задержек. |
| Одновременные пользователи | Рендеринг происходит на клиенте; сервер отдаёт зашифрованный файл лишь один раз за просмотр. | Ограничьте конечную точку загрузки с помощью IApplicationRateLimiter, чтобы защититься от всплесков нагрузки. |
| Потребление памяти | Отсутствие серверных библиотек конвертации PDF, поэтому процесс ASP.NET остаётся лёгким. | Выделите сервис загрузки в отдельный микросервис, если уже используете тяжёлую очередь фоновых задач. |
Следуя этим рекомендациям, вы сможете обслуживать тысячи одновременных пользователей без необходимости масштабировать .NET‑уровень выше текущих возможностей.
Ключевые выводы
- Doconut App предоставляет безплагинный, 100 % безопасный просмотрщик, работающий с ASP.NET Core, MVC и WebForms.
- Загрузки происходят только по SSL, хранятся с шифрованием AES‑256 и автоматически удаляются после истечения срока действия подписанного URL.
- Интеграция требует лишь CDN‑скрипт, контейнер
<div>и небольшую серверную конечную точку, возвращающую подписанный URL. - Просмотрщик поддерживает PDF, Office, CAD и более 50 форматов изображений — без серверной конвертации.
- UI полностью настраиваемый под фирменный стиль, а просмотрщик предлагает встроенные инструменты масштабирования, измерения и работы со слоями для CAD‑файлов.
- Производительность реализуется на клиенте; разработчикам .NET остаётся обеспечить сжатие статических файлов и, при необходимости, кеширование через CDN.
- Весь процесс — от безопасной загрузки до рендеринга в браузере — чисто вписывается в существующие .NET‑потоки аутентификации и авторизации.
Часто задаваемые вопросы
В1: Нужно ли устанавливать какие‑либо NuGet‑пакеты для использования Doconut?
О: Нет. Просмотрщик поставляется как клиентский JavaScript‑бандл с CDN Doconut. Ваш сервер нуждается только в обычных middleware ASP.NET Core для загрузки файлов и их шифрования, которые, скорее всего, уже присутствуют в проекте.
В2: Как Doconut гарантирует удаление файла после просмотра?
О: Doconut генерирует короткоживущий подписанный URL, который истекает через заданный период (обычно пять минут). После истечения срока действия вы (или фоновая задача очистки) удаляете зашифрованный блоб. Это гарантирует, что документ не хранится дольше, чем необходимо, удовлетворяя строгие политики удержания данных.
В3: Можно ли распечатывать или экспортировать документ через просмотрщик?
О: Да. Встроенная панель инструментов Doconut включает функции печати и экспорта, сохраняющие оригинальное качество и макет исходного файла.
Готовы встроить безопасный, безплагинный просмотрщик документов в ваше .NET‑приложение? Начните работать с Doconut App уже сегодня и предоставляйте PDF, Office, CAD и десятки других форматов безопасно и мгновенно.