是的——您可以在几分钟内将安全、无插件的在线文件查看器嵌入任何 ASP.NET Core、MVC 或 WebForms 应用程序,且 Doconut App 完成所有繁重工作。
为合同、图纸或设计资产提供服务的企业需要一个遵守公司安全策略且永不强制用户安装旧版浏览器插件的查看器。Doconut 提供用于基于浏览器的 PDF、Office、CAD、电子邮件和图像工作流的 .NET 文档查看器 SDK。本篇文章概述了集成决策,而不依赖特定版本的示例代码。

1. 为什么安全性和零插件渲染对 .NET Web 应用程序很重要
现代企业将每个文档视为潜在的数据泄漏风险。当您嵌入依赖 ActiveX、Flash 或本机客户端的查看器时,会面临三大风险:
| 风险 | 对您的 .NET 应用程序的影响 | Doconut App 如何消除该风险 |
|---|---|---|
| 插件依赖 | 用户必须安装或启用浏览器插件,导致支持工单和合规性难题。 | Doconut 完全在 HTML5/Canvas 中运行,无需任何插件。 |
| 未加密传输 | 文件通过 HTTP 传输或以明文存储,违反 GDPR、HIPAA 或内部政策。 | 所有上传均通过 SSL,并使用 AES‑256 加密 存储。 |
| 不可控的生命周期 | 文件可能在服务器上残留,增加泄露风险。 | Doconut 会在查看后自动 删除文件,确保保留窗口短暂。 |
由于查看器以 JavaScript 组件的形式交付,并与 Doconut 的安全渲染服务通信,您可以保持 .NET 堆栈的整洁——无需额外的本机库、第三方二进制文件,也无需额外的合规审计。
2. 准备 .NET 项目
使用与项目所选 Doconut 版本匹配的包、文档和示例。官方的 Doconut 下载页面 是可靠的起点。
在集成之前,确认目标 .NET 运行时,记录包版本,将许可证配置保存在源代码控制之外,并使用代表性的文档进行测试。ASP.NET Core、MVC 和 WebForms 具有不同的应用程序生命周期,因此它们的设置不应视为相同。
3. 构建安全的上传端点 —— AES‑256、SSL 与自动删除
查看器永不直接访问您文件系统上的文件。相反,您将文档上传到 临时加密存储位置,由 Doconut 按需读取。以下是针对 ASP.NET Core 的高级步骤描述;相同思路同样适用于 MVC 和 WebForms。
服务器端工作流
- 接受上传的文件 —— 使用标准的
IFormFile(在 WebForms 中为HttpPostedFile)接收来自客户端的文档。 - 使用 AES‑256 加密文件 —— 在持久化流之前,使用诸如
System.Security.Cryptography.Aes的成熟库进行加密。将加密的二进制块存储在安全位置(例如启用了服务器端加密的 Azure Blob Storage,或使用 SSE‑AES256 的 S3 存储桶)。 - 生成短期签名 URL —— 创建一个仅在几分钟内有效的 URL(例如 5 分钟)。该 URL 必须使用 HTTPS,并包含 Doconut 可验证的加密令牌。大多数云存储提供商都提供“预签名 URL”功能以满足此需求。
- 将签名 URL 返回给客户端 —— 发送包含该 URL 的 JSON 响应。客户端随后将此 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 可被 MVC 的$.ajax消费。 - WebForms —— 在上传完成后使用
ClientScript.RegisterStartupScript注册脚本,然后以相同方式调用launchViewer。
由于 Doconut 直接从签名 URL 流式传输文档,服务器在上传步骤之后再也不接触该文件。查看器能够渲染 PDF、Word 文件、CAD 图纸以及产品说明中列出的所有其他格式——无需任何额外的服务器端转换。
5. 定制查看器以匹配品牌 —— 精细调校在线文件查看器
企业通常需要查看器看起来像门户的原生部分。Doconut App 的 完全可定制 UI 让您能够:
| 自定义项 | 在 .NET 中的实现方式 |
|---|---|
| 工具栏布局 | 传入 toolbar: false,并自行构建调用查看器 JavaScript API(如 zoomIn()、print())的按钮。 |
| 配色方案 | 设置 theme: "dark",或提供自定义 CSS 文件覆盖默认类。 |
| 语言与可访问性 | Doconut 会遵循容器的 lang 属性;您也可以通过 accessibility 选项注入 ARIA 标签。 |
| 事件钩子 | 如 onPageChange、onError、onDownload 等回调可让您在现有遥测管道中记录使用指标。 |
所有这些钩子都在前一节展示的同一 JavaScript 对象中配置。由于查看器完全运行在客户端,不会增加服务器负载——您的 .NET 后端仍专注于身份验证、加密和业务逻辑。
6. 性能与可扩展性 —— 保持流畅体验
在高流量门户中嵌入查看器会带来两个实际关注点:加载时间 和 并发渲染。Doconut App 开箱即用地解决了这两点,但您可以通过一些 .NET 特有的技巧进一步提升性能。
| 关注点 | Doconut 的内置优势 | 额外的 .NET 提示 |
|---|---|---|
| 初始下载 | 查看器脚本仅约 150 KB(gzip 后)。 | 启用 静态文件压缩 (app.UseResponseCompression()) 和 缓存 (Cache‑Control: public, max‑age=31536000)。 |
| 文件流式传输 | Doconut 仅流式传输所需页面,使用 HTTP 范围请求。 | 将加密的二进制块存储在 区域 CDN(Azure Front Door、Amazon CloudFront)中以降低延迟。 |
| 并发用户 | 渲染在客户端完成;服务器每次查看仅提供一次加密文件。 | 使用 IApplicationRateLimiter 对 上传端点 进行限流,以防突发流量。 |
| 内存占用 | 没有服务器端 PDF 转换库,ASP.NET 进程保持轻量。 | 如果已有繁重的后台任务队列,可将上传服务运行在 独立的微服务 中。 |
遵循这些指南,您可以在不超出现有 .NET Web 层规模的情况下支持数千个并发查看器。
关键要点
- Doconut App 提供 无插件、100 % 安全 的查看器,兼容 ASP.NET Core、MVC 和 WebForms。
- 上传仅通过 SSL,并使用 AES‑256 加密 存储,签名 URL 失效后自动删除。
- 集成只需一个 CDN 脚本、一个容器
<div>,以及返回签名 URL 的小型服务器端端点。 - 查看器支持 PDF、Office、CAD 以及 50+ 图像格式——无需服务器端转换。
- UI 可以 完全自定义 以匹配企业品牌,查看器还提供内置的缩放、测量和图层工具用于 CAD 文件。
- 性能由客户端处理;.NET 开发者只需确保静态文件压缩和可选的 CDN 缓存。
- 完整工作流——从安全上传到浏览器内渲染——可以干净地融入现有的 .NET 身份验证和授权管道。
常见问题
Q1: 我需要安装任何 NuGet 包才能使用 Doconut 吗?
A: 不需要。查看器作为客户端 JavaScript 包从 Doconut 的 CDN 提供。您的服务器只需常规的 ASP.NET Core 文件上传和加密中间件,您很可能已经拥有。
Q2: Doconut 如何确保文件在查看后被删除?
A: Doconut 生成一个短期有效的签名 URL,过期时间可配置(通常为五分钟)。URL 失效后,您(或后台清理任务)删除加密的二进制块。这保证文档不会被保留超过必要时间,满足严格的数据保留政策。
Q3: 我可以使用查看器进行打印或导出文档吗?
A: 可以。Doconut 内置的工具栏包含打印和导出选项,能够保持源文件的原始质量和布局。
准备好在您的 .NET 应用程序中嵌入安全、零插件的文档查看器了吗?立即使用 Doconut App,安全、即时地交付 PDF、Office、CAD 以及其他数十种格式。