Thêm khả năng xem tài liệu vào một ứng dụng doanh nghiệp không chỉ đơn giản là đặt một tệp PDF vào iframe. Các tệp Office, bản vẽ CAD, tệp email và hình ảnh yêu cầu các khả năng render khác nhau, trong khi ứng dụng vẫn cần kiểm soát xác thực, lưu trữ, ủy quyền và thời gian lưu trữ.
Doconut là một SDK trình xem tài liệu .NET được thiết kế để nhúng việc render và tương tác tài liệu trong các ứng dụng web. Thay vì đưa ra một công thức mã nguồn chưa được xác thực, hướng dẫn này giải thích các quyết định tích hợp mà nhóm của bạn nên thực hiện và xác định các thành phần .NET tiêu chuẩn thường đi kèm với SDK.

Tại sao Trình Xem Nhúng Khác với Tải Xuống Tệp
Endpoint tải xuống chuyển giao tệp gốc và để trải nghiệm xem tài liệu cho phần mềm bên ngoài ứng dụng của bạn. Trình xem nhúng giữ người dùng trong sản phẩm của bạn và có thể cung cấp một vị trí nhất quán cho việc điều hướng, tìm kiếm, xem lại và các tính năng khác được kích hoạt.
Việc tự xây dựng lớp render rất khó khăn vì mỗi định dạng có các quy tắc riêng:
- Các tệp PDF có thể chứa phông chữ nhúng, chú thích, biểu mẫu và bộ trang rất lớn.
- Các tệp Word, Excel và PowerPoint yêu cầu xử lý bố cục và phông chữ cẩn thận.
- Bản vẽ CAD cần tỷ lệ chính xác, lớp và phóng đại chi tiết.
- Các định dạng email và hình ảnh đưa vào các tệp đính kèm, siêu dữ liệu, màu sắc và các vấn đề về độ phân giải.
SDK chuyên dụng cho phép nhóm phát triển tập trung vào kiểm soát truy cập, quy trình làm việc và trải nghiệm người dùng thay vì phải duy trì một bộ render riêng cho mỗi định dạng được hỗ trợ.
Bước 1: Xác Nhận Các Định Dạng và Tính Năng Cần Thiết
Bắt đầu bằng việc lập một danh sách thực tế các tệp mà người dùng của bạn mở. Tách các định dạng thiết yếu ra khỏi các định dạng chỉ thỉnh thoảng sử dụng, và ghi lại các mẫu đại diện để kiểm thử.
Danh sách kiểm tra của bạn có thể bao gồm:
- Tài liệu PDF và XPS
- Tài liệu xử lý văn bản
- Bảng tính
- Bản trình chiếu
- Bản vẽ CAD
- Tệp email
- Các định dạng hình ảnh phổ biến
Sau đó xác định các tính năng quan trọng cho mỗi quy trình làm việc. Xem, tìm kiếm văn bản, chú thích, in ấn và chuyển đổi là các khả năng khác nhau và có thể yêu cầu các thành phần hoặc giấy phép Doconut khác nhau.
Xem lại phạm vi sản phẩm hiện tại trên trang Doconut Viewer đã được xác minh trước khi cam kết một định dạng hoặc tính năng. Khả năng của sản phẩm có thể thay đổi, vì vậy các bài kiểm tra chấp nhận của bạn nên là thẩm quyền cuối cùng cho các tài liệu mà khách hàng thực sự sử dụng.
Bước 2: Chọn Nơi Tài Liệu Nhập Vào Ứng Dụng
Một ứng dụng ASP.NET có thể nhận tài liệu từ một số nguồn được kiểm soát:
- Một tệp tải lên được xử lý dưới dạng ASP.NET Core
IFormFile - Vị trí tệp được bảo vệ
- Cơ sở dữ liệu hoặc kho quản lý tài liệu
- Lưu trữ đối tượng được máy chủ truy cập
- Một dịch vụ nội bộ trả về một
Stream
Quy trình xem nên sử dụng một tham chiếu tài liệu được máy chủ ủy quyền. Không đặt thông tin đăng nhập lưu trữ, đường dẫn tệp không giới hạn hoặc URL công cộng vĩnh viễn trong mã đánh dấu phía máy khách.
Nếu người dùng tải lên tệp, hãy xác thực chúng trước khi render. Kiểm tra kích thước tệp, phần mở rộng, chữ ký tệp và bất kỳ hạn chế nào đặc thù cho doanh nghiệp. Lưu trữ định danh do máy chủ tạo ra thay vì tin tưởng tên tệp gốc làm đường dẫn.
Bước 3: Xác Định Xác Thực và Ủy Quyền
Ứng dụng—không phải giao diện người dùng của trình xem—nên quyết định ai được phép mở tài liệu.
Trong ASP.NET Core, các cơ chế tiêu chuẩn như middleware xác thực, thuộc tính [Authorize], các chính sách, claim và ủy quyền dựa trên tài nguyên có thể bảo vệ endpoint khởi tạo phiên xem. Quyết định ủy quyền nên bao gồm cả người dùng hiện tại và tài liệu được yêu cầu.
Luồng yêu cầu bảo mật trông như sau:
- Người dùng yêu cầu một tài liệu bằng định danh cấp ứng dụng.
- Máy chủ xác thực người dùng.
- Máy chủ xác minh rằng người dùng có thể truy cập tài liệu cụ thể đó.
- Máy chủ xác định vị trí lưu trữ được bảo vệ.
- Trình xem nhận chỉ thông tin cần thiết cho phiên ủy quyền đó.
Không bao giờ cho rằng việc ẩn nút thanh công cụ là một biện pháp ủy quyền. Kiểm tra truy cập phía máy chủ vẫn cần thiết ngay cả khi các điều khiển tải xuống hoặc in ấn không được hiển thị.
Bước 4: Thêm Doconut Thông Qua Các Tài Nguyên Tích Hợp Chính Thức
Sử dụng gói và hướng dẫn cài đặt hiện tại do Doconut cung cấp. Trang tải xuống Doconut đã được xác minh cung cấp quyền truy cập vào các tài nguyên tích hợp NuGet, tài liệu, ví dụ và bản demo.
Cài đặt chính xác có thể phụ thuộc vào:
- Loại ứng dụng ASP.NET hoặc .NET của bạn
- Sản phẩm và plugin Doconut đã chọn
- Phiên bản Doconut
- Giấy phép của bạn
- Các định dạng tài liệu và tính năng bạn bật
- Cấu hình máy chủ Windows của bạn
Theo dõi tài liệu phù hợp với phiên bản đã cài đặt. Tránh sao chép đoạn khởi tạo từ các bài blog không liên quan vì không gian tên, cấu hình, đường dẫn tài nguyên và API có thể thay đổi giữa các phiên bản.
Bước 5: Tạo Ranh Giới Xem Riêng
Giữ việc xem tài liệu phía sau một dịch vụ ứng dụng nhỏ thay vì gọi chức năng SDK trong toàn bộ controller và thành phần UI.
Dịch vụ đó có thể chịu trách nhiệm:
- Giải quyết định danh tài liệu đã ủy quyền
- Mở tài liệu dưới dạng
Streamđược kiểm soát khi thích hợp - Cung cấp cấu hình xem cần thiết
- Giải phóng tài nguyên tệp và stream
- Chuyển đổi lỗi kỹ thuật thành lỗi ứng dụng an toàn
- Ghi lại các chỉ số vận hành mà không ghi nhật ký nội dung tài liệu
Ranh giới này giúp việc nâng cấp dễ dàng hơn và giảm rủi ro tiết lộ chi tiết lưu trữ cho lớp trình bày. Nó cũng cung cấp cho các bài kiểm tra một vị trí rõ ràng để thay thế bằng một triển khai an toàn.
Bước 6: Thiết Kế Trang Trình Xem
Trình xem nên có đủ không gian để hữu ích. Một thẻ hẹp bao quanh bởi các điều khiển không liên quan khiến việc kiểm tra các bảng tính lớn và bản vẽ CAD trở nên khó khăn.
Lập kế hoạch trang dựa trên:
- Chiều cao trình xem ổn định
- Các trạng thái tải, trống và lỗi rõ ràng
- Tiêu đề tài liệu ngắn gọn
- Các điều khiển xung quanh có thể truy cập bằng bàn phím
- Bố cục không ẩn các điều khiển quan trọng của trình xem
- Cách rõ ràng để quay lại quy trình cha
Kiểm tra với tên tệp dài, số trang lớn, bảng tính rộng, bản vẽ chi tiết và các tài liệu không thể render. Trạng thái lỗi không được tiết lộ đường dẫn máy chủ, dấu vết ngoại lệ hoặc URL lưu trữ.
Bước 7: Quản Lý Tệp và Dữ Liệu Tạm Thời
Xác định chính sách lưu trữ trước khi triển khai. Xem xét tệp gốc, dữ liệu render tạm thời, bộ nhớ đệm, xuất khẩu, chú thích và nhật ký một cách riêng biệt.
Các biện pháp bảo vệ hữu ích bao gồm:
- Thư mục tạm thời riêng biệt với quyền hạn hạn chế
- Tên duy nhất do máy chủ tạo
- Dọn dẹp sau các phiên thành công và thất bại
- Quá trình lên lịch cho các tệp tạm thời bị bỏ rơi
- Hạn ngạch lưu trữ và giám sát
- Mã hoá khi lưu trữ nếu chính sách bảo mật của bạn yêu cầu
Biến quá trình dọn dẹp có thể quan sát được. Nếu việc xóa thất bại mà không thông báo, các tệp tạm thời có thể tích lũy và trở thành vấn đề vận hành và bảo mật.
Bước 8: Cấu Hình Các Biện Pháp Bảo Vệ Sản Xuất
Việc render tài liệu có thể tiêu tốn CPU, bộ nhớ và không gian đĩa tạm thời. Bảo vệ ứng dụng bằng các giới hạn rõ ràng:
- Kích thước tải lên tối đa
- Số công việc render đồng thời tối đa
- Thời gian chờ yêu cầu và xử lý
- Giới hạn hàng đợi khi render được thực hiện bất đồng bộ
- Hạn ngạch lưu trữ tạm thời
- Kiểm tra sức khỏe và giám sát lỗi có cấu trúc
Đối với khối lượng công việc lớn hoặc không thể dự đoán, tách việc render ra khỏi các quy trình ứng dụng nhạy cảm với độ trễ. Đo lường bằng các tài liệu giống khách hàng thay vì chỉ dựa vào các tệp kiểm thử nhỏ.
Bước 9: Kiểm Tra Toàn Bộ Quy Trình
Một bài kiểm tra tích hợp thành công nên bao phủ hơn chỉ “trang đầu tiên xuất hiện”.
Kiểm tra:
- Mọi định dạng tệp yêu cầu
- Các tệp nhỏ, lớn, đa trang và hỏng
- Tài liệu có phông chữ không phổ biến
- Các tệp được bảo vệ bằng mật khẩu khi quy trình của bạn hỗ trợ
- Người dùng được ủy quyền và không được ủy quyền
- Các phiên xem đồng thời
- Khởi động lại ứng dụng và các yêu cầu bị gián đoạn
- Dọn dẹp sau thành công và thất bại
- Các tính năng trình xem được bao gồm trong cấu hình sản phẩm bạn đã chọn
Giữ một bộ sưu tập các tài liệu kiểm thử đã được làm sạch và phiên bản hoá. Chạy lại khi nâng cấp Doconut, .NET, Windows Server, hạ tầng lưu trữ hoặc các phụ thuộc liên quan.
Danh Sách Kiểm Tra Bảo Mật
Trước khi phát hành, xác nhận rằng:
- Mọi yêu cầu xem đều yêu cầu xác thực khi thích hợp.
- Ủy quyền được kiểm tra cho tài liệu cụ thể.
- Dữ liệu đầu vào do người dùng kiểm soát không thể trở thành đường dẫn tệp máy chủ không giới hạn.
- Thông tin đăng nhập lưu trữ không bao giờ tới phía máy khách.
- Giới hạn tải lên và xác thực được bật.
- Các tệp tạm thời có quyền truy cập hạn chế và chính sách dọn dẹp đã được kiểm tra.
- Nhật ký không bao gồm nội dung tài liệu, bí mật và URL nhạy cảm.
- Thông báo lỗi hiển thị cho người dùng được làm sạch.
- SDK và các phụ thuộc của ứng dụng tuân theo quy trình cập nhật.
Các điều khiển trình xem có thể hỗ trợ quy trình kinh doanh của bạn, nhưng chúng không thể ngăn chặn mọi hình thức sao chép khi thông tin đã hiển thị cho người dùng được ủy quyền. Hãy sử dụng chúng cùng với các kiểm soát truy cập và chính sách bảo vệ thông tin phù hợp.
Nơi Doconut Phù Hợp
Doconut cung cấp khả năng xem tài liệu bên trong ứng dụng .NET, trong khi ứng dụng của bạn vẫn chịu trách nhiệm về danh tính, ủy quyền, lưu trữ tệp, lưu trữ, kiểm toán và quy trình làm việc xung quanh.
Sự phân chia trách nhiệm này cung cấp cho các nhóm .NET một lộ trình thực tế để hỗ trợ tài liệu doanh nghiệp mà không cần xây dựng nhiều engine render từ đầu. Nó cũng giữ các chi tiết tích hợp riêng cho sản phẩm gắn liền với tài liệu chính thức cho phiên bản bạn triển khai.
Khám phá Doconut .NET document viewer SDK, sau đó sử dụng các tài nguyên tải xuống và tài liệu chính thức để đánh giá nó với các tài liệu của riêng bạn.
Kết Luận
Một trình xem tài liệu nhúng đáng tin cậy bắt đầu bằng các yêu cầu định dạng rõ ràng và một luồng tài liệu phía máy chủ an toàn. Xác thực đầu vào, ủy quyền mọi yêu cầu tài liệu, tách quyền truy cập SDK phía sau một dịch vụ ứng dụng, lên kế hoạch dọn dẹp tệp tạm thời và kiểm thử với các tệp thực tế.
Với những nền tảng này, Doconut có thể cung cấp lớp xem cho ứng dụng web .NET chạy trên Windows của bạn trong khi đội ngũ của bạn vẫn kiểm soát kiến trúc ứng dụng và vòng đời tài liệu.