Bạn có thể nhúng một trình xem tài liệu không cần plugin vào ứng dụng ASP.NET Core, MVC hoặc WebForms mà không yêu cầu bất kỳ người dùng nào phải cài đặt gì.
Các doanh nghiệp cung cấp hợp đồng, bản vẽ hoặc tài sản thiết kế cần một trình xem tôn trọng các chính sách bảo mật doanh nghiệp và không bao giờ buộc người dùng phải cài đặt các plugin trình duyệt lạc hậu. Doconut cung cấp SDK trình xem tài liệu .NET cho các quy trình làm việc dựa trên trình duyệt như PDF, Office, CAD, email và hình ảnh. Đây không phải là dịch vụ lưu trữ mà bạn gọi: bạn cài đặt nó vào ứng dụng của mình, và nó sẽ hiển thị ở đó. Bài viết này phác thảo các quyết định tích hợp mà không dựa vào mã mẫu theo phiên bản.
Một lời làm rõ trước, vì hai sản phẩm này dễ bị nhầm lẫn. Doconut.app là trình xem web miễn phí — một tệp, mở trong tab trình duyệt, sau đó bị xóa. Nó không phải là thứ bạn nhúng. Những gì bạn nhúng là Doconut Viewer, SDK, và mọi thứ dưới đây đều liên quan đến nó.

1. Tại sao bảo mật và việc render không cần plugin lại quan trọng đối với các ứng dụng web .NET
Các doanh nghiệp hiện đại coi mỗi tài liệu là một nguy cơ rò rỉ dữ liệu tiềm năng. Khi bạn nhúng một trình xem dựa vào ActiveX, Flash hoặc client gốc, bạn thừa nhận ba rủi ro:
| Rủi ro | Ảnh hưởng đến ứng dụng .NET của bạn | Cách Doconut App loại bỏ nó |
|---|---|---|
| Phụ thuộc plugin | Người dùng phải cài đặt hoặc bật plugin trình duyệt, dẫn đến các phiếu hỗ trợ và rắc rối về tuân thủ. | Doconut chạy hoàn toàn trên HTML5/Canvas, không yêu cầu bất kỳ plugin nào. |
| Truyền không mã hoá | Các tệp di chuyển qua HTTP hoặc được lưu trữ dưới dạng văn bản thuần, vi phạm GDPR, HIPAA hoặc các chính sách nội bộ. | SDK chạy bên trong ứng dụng của bạn, vì vậy việc truyền và lưu trữ vẫn tuân theo chính sách TLS và mã hoá mà bạn đã áp dụng. Doconut không thêm bất kỳ bước trung gian nào. |
| Vòng đời không kiểm soát | Các tệp có thể tồn tại lâu trên máy chủ, làm tăng diện tích rủi ro vi phạm. | Bạn tự quyết định thời gian lưu trữ, vì tài liệu không bao giờ rời môi trường của bạn. Đầu ra render tạm thời được ghi vào vị trí bạn cấu hình và sẽ được xóa theo lịch trình của bạn. |
Sự thật kiến trúc quan trọng là SDK được cài đặt trong môi trường của bạn và không gọi bất kỳ máy chủ nào của Doconut. Không có gì được tải lên chúng tôi, vì vậy không có bộ xử lý bên thứ ba nào để thêm vào bản đồ dữ liệu và không có chính sách lưu trữ của nhà cung cấp nào cần điều chỉnh với chính sách của bạn.
2. Chuẩn bị dự án .NET
Sử dụng gói, tài liệu và các ví dụ phù hợp với phiên bản Doconut được chọn cho dự án. Trang tải xuống chính thức của Doconut là điểm khởi đầu đáng tin cậy.
Trước khi tích hợp, hãy xác nhận runtime .NET mục tiêu, ghi lại phiên bản gói, giữ cấu hình giấy phép ngoài hệ thống kiểm soát nguồn, và bắt đầu với các tài liệu mẫu. ASP.NET Core, MVC và WebForms có vòng đời ứng dụng khác nhau, vì vậy việc thiết lập của chúng không nên được coi là giống nhau.
3. Xây dựng endpoint tải lên an toàn – AES‑256, SSL và tự xóa
SDK có thể đọc tài liệu từ đường dẫn vật lý, luồng, mảng byte, cơ sở dữ liệu, URL, vị trí nội bộ, hoặc nhà cung cấp đám mây như S3, Azure Storage, Google Cloud hoặc Dropbox. Điều mà nó không bao giờ nên đọc là đường dẫn do trình duyệt chọn. Đặt một kiểm tra ủy quyền giữa yêu cầu và tài liệu, bất kể nguồn nào. Dưới đây là một mẫu phổ biến cho endpoint đó trong ASP.NET Core; các ý tưởng tương tự áp dụng cho MVC và WebForms.
// Example code block – do not translate
[HttpPost("upload")]
public async Task<IActionResult> Upload(IFormFile file)
{
// Validate, store securely, and schedule deletion
}
Quy trình phía máy chủ
- Chấp nhận tệp đã tải lên – Sử dụng chuẩn
IFormFile(hoặcHttpPostedFiletrong WebForms) để nhận tài liệu từ client. - Mã hóa tệp bằng AES‑256 – Trước khi lưu trữ stream, mã hóa nó bằng thư viện đã được chứng minh như
System.Security.Cryptography.Aes. Lưu blob đã mã hóa vào vị trí an toàn (ví dụ, Azure Blob Storage với mã hóa phía máy chủ được bật, hoặc một bucket S3 với SSE‑AES256). - Tạo URL ký ngắn hạn – Tạo một URL có hiệu lực trong vài phút (ví dụ, 5 phút). URL nên là HTTPS và bao gồm một token mật mã mà Doconut có thể xác thực. Hầu hết các nhà cung cấp lưu trữ đám mây đều cung cấp tính năng “pre‑signed URL” đáp ứng nhu cầu này.
- Trả về URL ký cho client – Gửi phản hồi JSON chứa URL. Client sẽ chuyển URL này cho trình xem Doconut.
- Lên lịch tự‑xóa – Sau khi URL ký hết hạn, một công việc nền (Hangfire, Azure Functions, v.v.) sẽ xóa blob đã mã hóa, đảm bảo tệp không còn tồn tại trên máy chủ.
Các tương đương MVC / WebForms
- MVC – Đặt cùng logic trong một hành động controller thông thường và trả về
JsonResult. - WebForms – Triển khai một handler
.ashxhoặc một phương thức trang tuân theo các bước giống nhau: nhậnRequest.Files[0], mã hóa, tạo pre‑signed URL, và ghi phản hồi JSON.
Sự khác biệt duy nhất là cú pháp định tuyến; quy trình bảo mật vẫn giống hệt.
4. Kết xuất tài liệu qua SDK đã cài đặt
Giữ quyền truy cập tài liệu trên máy chủ và thực thi ủy quyền trước khi xử lý tệp hoặc stream. Trình tự kết xuất và khởi tạo UI chính xác phụ thuộc vào phiên bản; hãy tham khảo tài liệu chính thức đi kèm với bản dựng đã cài đặt thay vì sao chép một API JavaScript toàn cầu chưa được xác minh.
Tại sao cách này hoạt động cho mọi phiên bản .NET
- ASP.NET Core Razor – Quá trình khởi tạo nằm trong cùng một view chứa form tải lên, vì vậy chỉ có một trang để suy xét.
- MVC – Sử dụng
@section Scriptsđể chèn cùng đoạn mã; controller trả về JSON mà$.ajaxcủa MVC có thể tiêu thụ. - WebForms – Đăng ký script bằng
ClientScript.RegisterStartupScriptsau khi tải lên hoàn tất, rồi gọilaunchViewertheo cùng cách.
Quá trình kết xuất diễn ra trên máy chủ của bạn, và đó là mục đích: trình duyệt nhận các trang đã được kết xuất thay vì tài liệu gốc, vì vậy một tệp DWG hoặc PSD có thể mở trên máy không có AutoCAD hay Photoshop. Điều chỉnh kích thước máy chủ cho phù hợp — một PDF 300 trang đã quét là công việc thực sự, và bây giờ tầng của bạn sẽ thực hiện nó.
5. Tùy chỉnh trình xem để phù hợp với cổng của bạn
Các doanh nghiệp thường cần trình xem trông giống như một phần của sản phẩm mà nó được nhúng, thay vì một cửa sổ vào sản phẩm của người khác. Giao diện của trình xem và tập hợp các điều khiển mà nó cung cấp có thể cấu hình, và các tùy chọn có sẵn phụ thuộc vào bản dựng bạn đã cài đặt.
Lấy tên các tùy chọn đó từ tài liệu đi kèm với phiên bản của bạn thay vì từ một bài blog. Các giao diện cấu hình trình xem chính là những thứ thường bị đổi tên giữa các phiên bản, và một đoạn mã sao chép từ một bài viết cũ hai phiên bản sẽ thất bại theo cách trông giống như vấn đề giấy phép.
Quyết định quan trọng trước khi mở tài liệu đó là các điều khiển nào mỗi vai trò nên thấy. Người dùng có thể in, tải xuống, hay chỉ duyệt qua tài liệu là một câu hỏi quyền mà ứng dụng của bạn đã biết câu trả lời. Hãy cấu hình trình xem dựa trên câu trả lời đó, thay vì hiển thị mọi điều khiển và hy vọng không ai nhấn.
6. Hiệu năng và khả năng mở rộng – giữ trải nghiệm mượt mà
Nhúng một trình xem vào cổng có lưu lượng truy cập cao đặt ra hai mối quan tâm thực tế: thời gian tải và kết xuất đồng thời. Doconut App giải quyết cả hai ngay từ đầu, nhưng bạn có thể tăng cường hiệu năng bằng một vài mẹo đặc thù .NET.
| Vấn đề | Cách giải quyết |
|---|---|
| Độ trễ trang đầu | Tự động tải trang cho phép người đọc xem trang một trong khi phần còn lại vẫn đang được chuẩn bị. Bật nén tệp tĩnh (app.UseResponseCompression()) và lưu vào bộ nhớ cache các tài sản của client. |
| Xem lại cùng một tệp nhiều lần | Một tài liệu được mở thường xuyên có thể được kết xuất một lần và phục vụ từ kết quả đã được cache thay vì kết xuất lại mỗi yêu cầu. Câu hỏi thường gặp đề cập đến tùy chọn .DCN cho mục đích này. |
| Chi phí kết xuất | Kết xuất là công việc của máy chủ. Giảm độ phân giải hình ảnh khi độ chính xác không quan trọng là cách duy nhất hiệu quả nhất, và đó là thay đổi cấu hình chứ không phải thay đổi mã. |
| Đồng thời | Xem xét cài đặt timeout và AutoClose khi tải cao, và đọc các ví dụ về web farm trước khi cho rằng một node là đủ. Giới hạn tốc độ (rate‑limit) cho endpoint tải lên. |
Đo lường với các tài liệu của riêng bạn. Một PDF dựa trên văn bản 5 MB và một bản quét 5 MB của cùng báo cáo không giống nhau chút nào, và chỉ một trong số chúng xuất hiện trong benchmark tổng hợp.
Những điểm chính
- Doconut Viewer là một SDK .NET không cần plugin, hoạt động với ASP.NET Core, MVC và WebForms. Người dùng của bạn không cần cài đặt gì.
- Nó được cài đặt trong môi trường của bạn và không gọi tới máy chủ Doconut, vì vậy tài liệu vẫn nằm trong giới hạn mà bạn đã kiểm soát.
- Bảo mật truyền tải, mã hoá khi lưu trữ và thời gian lưu giữ là do bạn thiết lập, vì tệp không bao giờ rời khỏi hạ tầng của bạn. Doconut không trở thành một bộ xử lý trong sơ đồ dữ liệu của bạn.
- Danh mục SDK có 75 định dạng tệp thuộc 18 họ — PDF, Office, CAD, Visio, Project, email, eBook và hình ảnh, với DICOM thông qua plugin riêng của nó.
- Quá trình render diễn ra trên máy chủ. Đó là lý do cho phép trình duyệt mở một DWG, và cũng là yếu tố cần cân nhắc về kích thước.
- Các điều khiển mà người dùng thấy — in, tải xuống, hoặc chỉ phân trang — nên tuân theo các quyền mà ứng dụng của bạn đã có.
- Lấy tên các tùy chọn cấu hình từ tài liệu của phiên bản bạn đã cài đặt, không bao giờ từ một bài viết.
Các câu hỏi thường gặp
Q1: Tôi có cần cài đặt gì trên máy chủ không?
A: Có. Doconut Viewer là một SDK .NET bạn cài đặt vào ứng dụng của mình — bắt đầu từ trang tải xuống và sử dụng gói cũng như tài liệu cho phiên bản bạn đã chọn. Không có endpoint nào được lưu trữ để gọi, và không có gì được phục vụ từ CDN của Doconut.
Q2: Ai sẽ xóa tệp sau khi xem?
A: Bạn tự làm. Vì tài liệu và bất kỳ đầu ra render tạm thời nào đều tồn tại trong môi trường của bạn, thời gian lưu giữ là một cài đặt trong ứng dụng của bạn chứ không phải lời hứa từ nhà cung cấp. Hãy quyết định nơi các tệp tạm thời được ghi, và ai sẽ xóa chúng, trước khi đưa vào sản xuất.
Q3: Người dùng có thể in tài liệu không?
A: In là một tính năng của viewer, và có thể được cấp hoặc thu hồi cho từng người dùng. Lưu ý rằng in có kiểm soát là một phần của viewer — không phải là một trong bốn plugin có giấy phép, đó là Annotation, Converter, DICOM và Search.
Q4: Nó có thể chuyển đổi tài liệu sang định dạng khác không?
A: Đó là plugin Converter, được cấp phép riêng. Xem và chuyển đổi là hai sản phẩm khác nhau ở đây, và bạn nên rõ ràng về việc quy trình thực tế cần cái nào.
Bạn đã sẵn sàng nhúng một trình xem tài liệu không cần plugin vào ứng dụng .NET của mình chưa? Bắt đầu từ trang tải xuống Doconut — giấy phép dùng thử là miễn phí. Và nếu những gì bạn thực sự cần chỉ là mở một tệp hôm nay, Doconut.app thực hiện điều đó trong một tab trình duyệt và xóa nó sau đó.