Nhiều nhà phát triển bắt đầu bằng cách tìm kiếm các thư viện thành phần UI khi họ cần hiển thị tài liệu trong một ứng dụng web. Trình xem Doconut là một SDK .NET để thêm khả năng xem trong trình duyệt không cần plugin vào các dự án ASP.NET Core, MVC hoặc WebForms cổ điển. Bảo mật vẫn phụ thuộc vào kiến trúc toàn bộ ứng dụng: xác thực, ủy quyền, truyền tải, lưu trữ, kiểm tra, dọn dẹp, vá lỗi và giám sát.

1. Cài đặt Doconut App SDK và chuẩn bị dự án .NET của bạn cho nhiều định dạng tệp
1.1 Thêm gói hỗ trợ
Sử dụng gói hiện tại và hướng dẫn cài đặt từ trang tải Doconut chính thức. Ghi lại phiên bản đã chọn và xác minh rằng nó hỗ trợ môi trường .NET mục tiêu.
1.2 Xác minh tham chiếu gói
Sau khi cài đặt, xác nhận tham chiếu gói và phiên bản đã giải quyết trong tệp dự án. Giữ các phiên bản rõ ràng giúp việc xây dựng và triển khai có thể tái tạo được.
1.3 Bật HTTPS
Phục vụ ứng dụng qua HTTPS để các tài liệu được tải lên không truyền qua văn bản thuần trên mạng của bạn. Đối với ứng dụng chạy trên Kestrel, thêm cấu hình endpoint trong appsettings.json:
{
"Kestrel": {
"Endpoints": {
"Https": {
"Url": "
}
}
}
}
Nếu bạn chạy trên IIS, gắn một chứng chỉ HTTPS vào site. Khi HTTPS được bật, tệp sẽ di chuyển qua một kênh bảo mật trên đường tới máy chủ của bạn, nơi SDK sẽ render nó.
Nơi mà bảo mật đến từ.
SDK chạy bên trong ứng dụng của bạn, trên hạ tầng của bạn: nó không thực hiện bất kỳ cuộc gọi nào ra các máy chủ Doconut, vì vậy tài liệu không bao giờ rời mạng của bạn. Đó là đặc tính quan trọng để thiết kế. Nó không phải là một chứng chỉ tuân thủ — SDK không cung cấp ISO 27001, SOC 2 hay chứng nhận HIPAA nào, và cũng không thể cấp cho ứng dụng của bạn. Điều nó làm là giữ tệp trong một ranh giới mà bạn đã kiểm soát và đã kiểm toán.
2. Cấu hình tải lên tệp an toàn và lưu trữ cho quản lý tài liệu
Đây là phần thuộc về bạn, không phải SDK, và đáng nói thẳng thắn: bảo mật truyền tải, mã hoá khi lưu trữ, giữ lại và dọn dẹp là các quyết định mà ứng dụng của bạn thực hiện. SDK chỉ render tài liệu; nó không phải là lớp lưu trữ và không mã hoá đĩa cho bạn.
2.1 Đăng ký các dịch vụ
Trong Startup.cs (hoặc Program.cs trên .NET hiện đại), đăng ký các dịch vụ Doconut trong container tiêm phụ thuộc theo tài liệu cho phiên bản bạn đã cài đặt. Khi SDK cần một thư mục làm việc cho đầu ra tạm thời, chỉ đến một vị trí bạn kiểm soát và chịu trách nhiệm dọn dẹp thư mục đó — một công việc định kỳ hoặc thời gian sống do ứng dụng quản lý, không phải giả định.
2.2 Tạo endpoint tải lên
Triển khai một hành động controller nhận tệp được tải lên, ghi nó vào kho lưu trữ mà ứng dụng của bạn đã sử dụng, và trả về một token một lần ngắn. Token này là gì mà trình xem phía client sẽ dùng để lấy và render tài liệu. Lưu ý việc lưu trữ là của bạn: bạn cung cấp SDK byte hoặc đường dẫn khi đến lúc render, và SDK trả lại các trang.
2.3 Bảo vệ endpoint
Vì endpoint tải lên xử lý dữ liệu nhạy cảm, hãy bảo vệ nó bằng xác thực và ủy quyền dựa trên vai trò (ví dụ, chỉ người dùng trong vai trò DocumentViewer mới được phép tải lên). Kiểm tra phần mở rộng và kích thước phía máy chủ cũng như trong trình duyệt, và xem các byte đã tải lên như là đầu vào không tin cậy.
Đừng bỏ qua bước này với giả định rằng SDK đã bao phủ. Mã hoá khi lưu trữ, quản lý khóa và dọn dẹp các tệp rác là công việc của ứng dụng của bạn. Nếu bạn cần tài liệu được mã hoá trên đĩa, hãy sử dụng các tiện ích nền tảng mà bạn đã tin cậy — trình xem không phải là nơi thực hiện việc đó.
3. Nhúng Thành phần Viewer trong ASP.NET Core, MVC hoặc WebForms
Khi backend đã sẵn sàng, khởi tạo viewer bằng cách sử dụng các tài nguyên và API được tài liệu mô tả cho phiên bản Doconut đã cài đặt.
3.1 Thêm bundle JavaScript
Trong layout chung của bạn, chỉ bao gồm các tài nguyên viewer được mô tả trong tài liệu phù hợp với SDK đã cài đặt. Đừng giả định tên bundle hoặc vị trí cố định giữa các phiên bản.
3.2 Tạo một Razor view cho Core/MVC
Thêm một view (ví dụ, Views/Document/View.cshtml) chứa một input file, một phần tử container cho viewer, và một đoạn script nhỏ để tải lên tệp đã chọn, nhận token bảo mật, và khởi tạo widget Doconut Viewer.
Script nên:
- Nắm bắt tệp đã chọn từ phần tử
<input type="file">. - Gửi tệp tới endpoint tải lên bằng
fetchhoặcXMLHttpRequest. - Khi phản hồi được ủy quyền tới, khởi tạo viewer bằng API được hỗ trợ cho phiên bản đã cài đặt.
3.3 Tương đương WebForms
Trong một trang WebForms (ví dụ, DocumentViewer.aspx), đặt một điều khiển asp:FileUpload, một nút để kích hoạt việc tải lên, và một <div> sẽ chứa viewer. Trong code‑behind, gọi dịch vụ Doconut để lưu tệp đã tải lên, lấy token, và đăng ký một script khởi động gọi hàm JavaScript (initViewer(token)) để tạo instance của viewer.
Lý do thực hiện theo cách này: một đường render duy nhất phục vụ ba mô hình UI .NET, mà không cần cài đặt gì trên máy người dùng cuối.
4. Tùy chỉnh Viewer cho Quản lý Tài liệu
Viewer được render bên trong một container trên trang của bạn, vì vậy ứng dụng bao quanh đã là của bạn. Ngoài ra, hãy lấy tên tùy chọn và giá trị mặc định từ tài liệu cho phiên bản bạn đã cài đặt thay vì từ bất kỳ tutorial nào, bao gồm cả tutorial này — giao diện cấu hình thay đổi giữa các bản phát hành và một tên tùy chọn được mã cứng là yếu tố có khả năng gây lỗi khi nâng cấp nhất.
Những điều cần quyết định ngay từ đầu:
4.1 Các điều khiển mà người dùng nhận được
Quyết định người dùng của bạn có nên tải xuống tệp gốc hay chỉ đọc các trang đã render. In có kiểm soát là một phần của viewer chứ không phải một mua riêng, vì vậy các quy tắc in là câu hỏi cấu hình, không phải vấn đề giấy phép.
4.2 Các plugin bạn thực sự cần
Có bốn plugin được cấp phép riêng, và danh sách ngắn gọn đủ để ghi nhớ: Annotation, Converter, DICOM và Search. Chuyển đổi — DOC sang PDF và các định dạng khác — là plugin Converter. Tìm kiếm văn bản là plugin Search. Nếu bạn không cần bất kỳ plugin nào, bạn không cần mua chúng.
4.3 Địa phương hoá
Nếu ứng dụng của bạn hỗ trợ đa ngôn ngữ, hãy kiểm tra những chuỗi UI viewer mà phiên bản đã cài đặt cung cấp trước khi bạn thiết kế xung quanh chúng.
Tại sao điều này quan trọng: viewer nên trông như một phần của sản phẩm của bạn. Điều không nên làm là âm thầm hứa hẹn cho người dùng những khả năng mà giấy phép bạn mua không bao gồm.
5. Kiểm tra tích hợp trên tất cả các định dạng được hỗ trợ
Trước khi đưa vào hoạt động, thực hiện một kiểm tra nhanh cho mỗi loại tệp mà bạn mong người dùng sẽ xem. Sử dụng viewer của Doconut App, mở một tệp mẫu của mỗi định dạng và xác nhận rằng việc render, điều hướng và bất kỳ công cụ chuyên biệt nào hoạt động như mô tả.
| Định dạng | Kịch bản Kiểm tra | Kết quả Mong đợi |
|---|---|---|
| Báo cáo lớn, nhiều trang có hình ảnh nhúng | Cuộn mượt, phóng to, và render màu chính xác | |
| DOCX | Tài liệu Word có bảng và chú thích | Tất cả văn bản, bảng và chú thích hiển thị; không có dịch chuyển bố cục |
| XLSX | Bảng tính có biểu đồ | Biểu đồ render dưới dạng đồ họa vector; phóng to vẫn giữ độ rõ nét |
| PPTX | Bộ slide có các hiệu ứng xây dựng động | Mỗi hiệu ứng trên slide được render chồng lên một khung — đây là hành vi mong đợi, không phải lỗi |
| DWG | Bản vẽ kỹ thuật có lớp và tham chiếu ngoài | Có thể bật/tắt lớp, đo khoảng cách và diện tích hoạt động; các xref và phông chữ SHX không có vì chúng chưa từng có trong tệp |
| PSD | Tệp Photoshop có lớp | Thành phần đã lưu render, các lớp ẩn vẫn ẩn; màu sắc giữ nguyên khi phóng to |
| SVG | Đồ họa vector có gradient | Gradient render mượt; phóng to vẫn sắc nét |
| TIFF | Ảnh quét độ phân giải cao | Hình ảnh tải nhanh; phóng to tiết lộ chi tiết |
Hãy kiểm tra với các tệp thực tế của người dùng, không phải với các mẫu sạch. Những định dạng gây bất ngờ thường là do những bất thường nằm trong chính định dạng — một DWG tham chiếu tới bốn bản vẽ khác, một bảng tính có giá trị lưu trữ chưa bao giờ được tính lại, một bộ slide mà phông chữ không được nhúng. Viewer miễn phí tại Doconut.app chạy cùng engine, vì vậy đây là cách nhanh để xem một tệp khó xử lý sẽ hiển thị như thế nào trước khi bạn viết bất kỳ mã nào.
Conclusion
Việc nhúng một trình xem tài liệu không cần plugin chỉ bao gồm bốn điều: cài đặt SDK, bảo mật đường tải lên của riêng bạn, render vào một container trong trang của bạn, và cấu hình chỉ những gì phiên bản đã cài đặt tài liệu. Đóng góp của trình xem đối với bảo mật là hẹp và thực tế — nó chạy trên máy chủ của bạn và không gửi gì ra ngoài. Mọi thứ còn lại trong danh sách đó là của ứng dụng của bạn, và không có SDK nào có thể thay thế cho bạn.
Sẵn sàng đánh giá nó? Bắt đầu với trang tải xuống và tài liệu chính thức của Doconut, sau đó thử nghiệm SDK trong cùng một quy trình đánh giá bảo mật được áp dụng cho phần còn lại của ứng dụng ASP.NET dựa trên Windows của bạn.