步骤指南:开发者在 ASP.NET Core、MVC 或 WebForms 应用中嵌入安全、无插件的文档查看器
2026/7/24

步骤指南:开发者在 ASP.NET Core、MVC 或 WebForms 应用中嵌入安全、无插件的文档查看器

如何在 ASP.NET Core、MVC 或 WebForms 中嵌入 Doconut Viewer SDK:支持 75 种文件格式、DOC 转 PDF 转换,以及安全性真正来源于何处。

许多开发者在需要在 Web 应用中显示文档时,首先会寻找 UI 组件库。Doconut 查看器 是一个 .NET SDK,用于在 ASP.NET Core、MVC 或传统 WebForms 项目中添加无插件的浏览器查看功能。安全性仍然取决于完整的应用架构:身份验证、授权、传输、存储、验证、清理、补丁和监控。

受分层应用控制保护的安全 ASP.NET 文档查看器
受分层应用控制保护的安全 ASP.NET 文档查看器

1. 安装 Doconut App SDK 并为多文件格式准备您的 .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(或现代 .NET 的 Program.cs)中,按照已安装版本的文档,在依赖注入容器中注册 Doconut 服务。SDK 需要一个工作文件夹来存放临时渲染输出时,请将其指向您可控制的位置,并将该文件夹的清理责任交给您——通过计划任务或应用程序管理的生命周期,而不是假设。

2.2 创建上传端点

实现一个控制器动作来接收上传的文件,将其写入您应用已使用的存储,并返回一个短期一次性令牌。该令牌供客户端查看器用于获取并渲染文档。请注意,存储由您负责:在渲染时将字节或路径交给 SDK,SDK 则返回页面给您。

2.3 保护端点

由于上传端点处理敏感数据,请使用身份验证和基于角色的授权进行保护(例如,仅 DocumentViewer 角色的用户可以上传)。在服务器端以及浏览器中验证文件扩展名和大小,并将上传的字节视为不可信输入。

不要因为假设 SDK 已覆盖而跳过此步骤。 静态加密、密钥管理和孤立文件清理是您应用的职责。如果需要对磁盘上的文档进行加密,请使用您已经信任的平台设施——查看器并非处理此事的地方。

3. 在 ASP.NET Core、MVC 或 WebForms 中嵌入 Viewer 组件

后端准备就绪后,使用已安装 Doconut 版本的资源和 API 初始化查看器。

3.1 添加 JavaScript 包

在共享布局中,仅引入文档中描述的、与已安装 SDK 相匹配的 Viewer 资源。不要假设不同版本之间的包名或位置是固定的。

3.2 为 Core/MVC 创建 Razor 视图

添加一个视图(例如 Views/Document/View.cshtml),其中包含文件输入、用于 Viewer 的容器元素,以及一个小脚本,用于上传所选文件、获取安全令牌并初始化 Doconut Viewer 小部件。

脚本应当:

  1. 从 <input type="file"> 元素获取选中的文件。
  2. 使用 fetch 或 XMLHttpRequest 将文件发送到上传端点。
  3. 当授权响应返回后,使用已安装版本支持的 API 初始化 Viewer。

3.3 WebForms 等价实现

在 WebForms 页面(例如 DocumentViewer.aspx)中,放置一个 asp:FileUpload 控件、一个触发上传的按钮以及一个用于承载 Viewer 的 <div>。在代码隐藏文件中,调用 Doconut 服务存储上传的文件、获取令牌,并注册一个启动脚本,调用 JavaScript 函数 initViewer(token) 来创建 Viewer 实例。

这样做的原因: 通过一条渲染路径服务三种 .NET UI 模型,且终端用户机器上无需安装任何东西。


4. 为文档管理定制 Viewer

Viewer 在您页面的容器内渲染,因此周边的应用已经是您自己的。除此之外,请从您所安装版本的文档中获取选项名称和默认值,而不是从任何教程(包括本教程)中获取——不同版本的配置界面会变化,硬编码的选项名称最容易在升级时导致故障。

需要提前决定的事项:

4.1 用户可以使用哪些控件

决定用户是只能阅读渲染后的页面,还是还能下载原始文件。受控打印是 Viewer 本身提供的功能,而不是单独的付费项目,因此打印规则属于配置问题,而非授权问题。

4.2 实际需要哪些插件

有四个插件是单独授权的,列表不长,值得记住:Annotation、Converter、DICOM 和 Search。转换(DOC 转 PDF 及其他)属于 Converter 插件。文本搜索属于 Search 插件。如果两者都不需要,就不必购买。

4.3 本地化

如果您的应用是多语言的,请在设计之前检查已安装版本为 Viewer UI 字符串提供了哪些本地化支持。

为何重要: Viewer 应该看起来像您产品的一部分。它不应悄悄向用户承诺您未购买的许可证所不包含的功能。


5. 在所有受支持的格式上测试集成

上线前,对每种预期用户会查看的文件类型进行快速检查。使用 Doconut App 的 Viewer,打开每种格式的示例文件,确认渲染、导航以及任何专用工具均如文档所述工作。

格式测试场景预期结果
PDF包含嵌入图像的大型多页报告滚动流畅,缩放顺畅,颜色渲染准确
DOCX含表格和脚注的 Word 文档所有文字、表格和脚注均可见;布局不出现偏移
XLSX含图表的电子表格图表以矢量图形式渲染;缩放后仍保持清晰
PPTX含动画构建的幻灯片稿件幻灯片上的每个构建在同一帧中堆叠显示——这是预期行为,而非错误
DWG含图层和外部参照的技术图纸图层可切换,距离和面积测量功能可用;外部参照和 SHX 字体缺失,因为文件中本就没有
PSD含图层的 Photoshop 文件渲染保存的合成图像,隐藏的图层保持隐藏;放大时颜色保持一致
SVG含渐变的矢量图形渐变平滑渲染;放大后仍保持锐利
TIFF高分辨率扫描件图像加载快速;放大后可见细节

请使用用户的真实文件进行测试,而不是仅使用干净的样本。那些让人惊讶的格式往往是因为格式本身的怪癖——例如引用了四个其他图纸的 DWG、从未重新计算过存储值的电子表格、以及未嵌入字体的幻灯片稿件。免费 Viewer 位于 Doconut.app ,使用相同的引擎,因此在编写任何代码之前,它是快速查看特定棘手文件渲染效果的便捷方式。

结论

嵌入无插件的文档查看器归结为四件事:安装 SDK,确保您自己的上传路径,将其渲染到页面中的容器,并仅配置已安装版本所记录的内容。查看器对安全性的贡献有限且真实——它运行在您的服务器上,且不向外发送任何数据。列表中的其他所有内容都是您应用程序的职责,没有任何 SDK 能替您完成。

准备好评估它了吗?从官方 Doconut 下载和文档页面开始,然后在与您基于 Windows 的 ASP.NET 应用程序其余部分相同的安全审查中测试 SDK。