C
7/10/2026

Cách Nhúng Trình Xem Tài Liệu Không Cần Plugin vào ASP.NET

Hướng dẫn chi tiết từng bước cho các kỹ sư .NET cần nhúng trình xem tài liệu an toàn, không cần plugin của Doconut App vào các dự án ASP.NET Core, MVC hoặc WebForms.

Có—bạn có thể nhúng một trình xem tệp trực tuyến an toàn, không cần plugin vào bất kỳ ứng dụng ASP.NET Core, MVC hoặc WebForms nào chỉ trong vài phút, và Doconut App thực hiện toàn bộ công việc nặng.
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, hoạt động trên mọi trình duyệt và không bao giờ buộc người dùng cài đặt plugin của bên thứ ba. Doconut App cung cấp đúng như vậy: một trình xem dựa trên trình duyệt hỗ trợ PDF, Office, CAD và hơn 50 định dạng khác, với mã hóa AES‑256, tải lên chỉ qua SSL và giao diện người dùng hoàn toàn tùy chỉnh. Bài viết này sẽ hướng dẫn bạn qua toàn bộ quy trình—từ bảo mật tải lên tệp đến render trình xem—để bạn có thể triển khai giải pháp doanh nghiệp chất lượng mà không cần tự viết engine render.


1. Tại sao bảo mật và 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 tàng. Khi bạn nhúng một trình xem dựa vào ActiveX, Flash hoặc client gốc, bạn sẽ gặp ba rủi ro:

Rủi roẢnh hưởng tới ứng dụng .NET của bạnCách Doconut App loại bỏ
Phụ thuộc pluginNgười dùng phải cài đặt hoặc bật plugin trình duyệt, dẫn đến vé hỗ trợ và rắc rối tuân thủ.Doconut chạy hoàn toàn trên HTML5/Canvas, không cần plugin.
Truyền tải không mã hoáTệp di chuyển qua HTTP hoặc được lưu dưới dạng văn bản thuần, vi phạm GDPR, HIPAA hoặc chính sách nội bộ.Tất cả tải lên đều qua SSL và được lưu với mã hoá AES‑256.
Vòng đời không kiểm soátTệp có thể tồn tại lâu trên máy chủ, tăng diện tích tấn công.Doconut tự động xóa tệp sau khi xem, đảm bảo thời gian lưu trữ ngắn.

Vì trình xem được cung cấp dưới dạng thành phần JavaScript giao tiếp với dịch vụ render bảo mật của Doconut, bạn giữ cho stack .NET sạch sẽ—không cần thư viện gốc, không có binary của bên thứ ba và không cần kiểm toán tuân thủ bổ sung.


2. Chuẩn bị dự án .NET – thiết lập tối thiểu cho ASP.NET Core, MVC và WebForms

Bất kể bạn đang dùng ASP.NET Core, MVC 5 hay WebForms, các bước chuẩn bị đều giống nhau:

  1. Thêm bundle script của Doconut
    Doconut lưu trữ một script trình xem nhẹ trên CDN của mình. Thêm dòng sau vào trang layout của bạn (ví dụ: _Layout.cshtml hoặc Site.Master):

    <script src="https://doconut.app/viewer.min.js"></script>
    
  2. Tạo phần tử placeholder
    Trình xem sẽ chèn một canvas vào bất kỳ <div> nào bạn chỉ định. Ví dụ cho Razor:

    <div id="docViewer" style="width:100%; height:800px;"></div>
    

    Đối với WebForms, đặt một <asp:Panel> với runat="server" và đặt ID="docViewer".

  3. Tham chiếu CSS của Doconut (tùy chọn)
    Nếu bạn muốn thanh công cụ và giao diện mặc định, bao gồm file CSS:

    <link rel="stylesheet" href="https://doconut.app/viewer.min.css" />
    

Đó là tất cả các tài sản tĩnh bạn cần. Phần còn lại sẽ diễn ra trong mã phía máy chủ (tải lên, mã hoá, tạo token) và một đoạn script khởi tạo phía client rất nhỏ.


3. Xây dựng endpoint tải lên an toàn – AES‑256, SSL và tự động xóa

Trình xem không bao giờ truy cập trực tiếp vào tệp trên hệ thống file của bạn. Thay vào đó, bạn tải tài liệu lên một vị trí lưu trữ tạm thời, đã được mã hoá mà Doconut sẽ đọc khi cần. Dưới đây là mô tả cấp cao các bước cần thiết cho ASP.NET Core; cùng ý tưởng áp dụng cho MVC và WebForms.

Quy trình phía máy chủ

  1. Nhận tệp tải lên – Sử dụng IFormFile tiêu chuẩn (hoặc HttpPostedFile trong WebForms) để nhận tài liệu từ client.
  2. Mã hoá tệp bằng AES‑256 – Trước khi ghi vào lưu trữ, mã hoá luồng bằng thư viện đã được chứng minh như System.Security.Cryptography.Aes. Lưu blob đã mã hoá ở vị trí an toàn (ví dụ: Azure Blob Storage với server‑side encryption, hoặc bucket S3 với SSE‑AES256).
  3. Tạo URL ký ngắn hạn – Tạo một URL có thời gian hiệu lực trong vài phút (thường 5 phút). URL phải là HTTPS và chứa 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 có tính năng “pre‑signed URL”.
  4. Trả về URL ký cho client – Gửi phản hồi JSON chứa URL. Client sẽ truyền URL này cho trình xem Doconut.
  5. Lên lịch tự động xóa – Sau khi URL ký hết hạn, một job nền (Hangfire, Azure Functions, …) sẽ xóa blob đã mã hoá, đảm bảo tệp không còn tồn tại trên máy chủ.

Tương đương MVC / WebForms

  • MVC – Đặt cùng logic trong một action controller và trả về JsonResult.
  • WebForms – Triển khai handler .ashx hoặc page method thực hiện các bước tương tự: nhận Request.Files[0], mã hoá, tạo URL ký và ghi phản hồi JSON.

Sự khác biệt duy nhất là cú pháp routing; quy trình bảo mật vẫn giống hệt.


4. Render trình xem Doconut – từ URL tới canvas trong trình duyệt

Khi client nhận được URL ký, trình xem có thể được khởi chạy bằng một lời gọi JavaScript duy nhất. SDK của Doconut tự động xử lý streaming, render và các tương tác UI.

<script>
    // Giả sử `response.viewerUrl` chứa URL ký trả về từ endpoint tải lên
    function launchViewer(viewerUrl) {
        // Khởi tạo trình xem Doconut. Đối tượng toàn cục do script cung cấp là `DoconutViewer`.
        DoconutViewer.init({
            containerId: "docViewer",   // <div> chúng ta đã đặt ở trên
            fileUrl: viewerUrl,          // URL HTTPS ký tới tệp đã mã hoá
            toolbar: true,               // Hiển thị thanh công cụ tích hợp
            theme: "light"              // Giao diện tùy chọn
        });
    }

    // Ví dụ: sau khi tải lên thành công
    fetch("/api/document/upload", {
        method: "POST",
        body: myFormData,
        credentials: "include"
    })
    .then(r => r.json())
    .then(data => launchViewer(data.viewerUrl));
</script>

Tại sao cách này hoạt động với mọi biến thể .NET

  • ASP.NET Core Razor – Script nằm trong cùng view chứa form tải lên, vì vậy luồng diễn ra liền mạch.
  • MVC – Dùng @section Scripts để chèn đoạn mã tương tự; controller trả về JSON mà $.ajax của MVC có thể tiêu thụ.
  • WebForms – Đăng ký script bằng ClientScript.RegisterStartupScript sau khi tải lên hoàn tất, rồi gọi launchViewer theo cùng cách.

Vì Doconut stream tài liệu trực tiếp từ URL ký, máy chủ không còn chạm tới tệp sau bước tải lên. Trình xem render PDF, Word, CAD và tất cả các định dạng đã liệt kê trong tài liệu sản phẩm—không cần bất kỳ chuyển đổi phía máy chủ nào.


5. Tùy chỉnh trình xem để phù hợp với thương hiệu của bạn – tinh chỉnh online file viewer

Các doanh nghiệp thường muốn trình xem trông giống như một phần gốc của cổng thông tin. UI có thể tùy chỉnh hoàn toàn của Doconut App cho phép bạn:

Tùy chỉnhCách áp dụng trong .NET
Bố cục thanh công cụĐặt toolbar: false và tự xây dựng các nút gọi API JavaScript của trình xem (ví dụ: zoomIn(), print()).
Bảng màuĐặt theme: "dark" hoặc cung cấp file CSS tùy chỉnh ghi đè các lớp mặc định.
Ngôn ngữ & khả năng truy cậpDoconut tôn trọng thuộc tính lang trên container; bạn cũng có thể chèn các nhãn ARIA qua tùy chọn accessibility.
Hook sự kiệnCác callback như onPageChange, onError, và onDownload cho phép bạn ghi lại số liệu sử dụng vào pipeline telemetry hiện có.

Tất cả các hook này được cấu hình trong cùng một đối tượng JavaScript như ở phần trước. Vì trình xem tồn tại hoàn toàn trên client, không có tải thêm nào cho server—backend .NET của bạn vẫn tập trung vào xác thực, mã hoá và logic nghiệp vụ.


6. Hiệu năng và khả năng mở rộng – giữ trải nghiệm luôn mượt mà

Nhúng một trình xem trong cổng thông tin có lưu lượng cao đặt ra hai mối quan ngại thực tiễn: thời gian tảirender đồng thời. Doconut App đã giải quyết cả hai ngay từ đầu, nhưng bạn vẫn có thể củng cố hiệu năng bằng một vài mẹo .NET.

Mối quan ngạiLợi thế tích hợp của DoconutMẹo .NET bổ sung
Tải xuống ban đầuScript trình xem chỉ khoảng 150 KB, đã nén gzip.Bật nén tệp tĩnh (app.UseResponseCompression()) và caching (Cache‑Control: public, max‑age=31536000).
Streaming tệpDoconut chỉ stream các trang cần thiết, dùng HTTP range requests.Lưu blob đã mã hoá trong CDN vùng (Azure Front Door, Amazon CloudFront) để giảm độ trễ.
Người dùng đồng thờiRender diễn ra trên client; server chỉ phục vụ tệp đã mã hoá một lần cho mỗi lượt xem.Giới hạn endpoint tải lên bằng IApplicationRateLimiter để bảo vệ trước các đợt tăng đột biến.
Chi phí bộ nhớKhông có thư viện chuyển đổi PDF phía server, nên tiến trình ASP.NET giữ nhẹ.Chạy dịch vụ tải lên trong microservice riêng nếu bạn đã có hàng đợi job nền nặng.

Theo các hướng dẫn này, bạn có thể hỗ trợ hàng ngàn người dùng đồng thời mà không cần mở rộng tầng web .NET hơn mức hiện có.


Những điểm quan trọng cần nhớ

  • Doconut App cung cấp một trình xem không cần plugin, 100 % an toàn hoạt động với ASP.NET Core, MVC và WebForms.
  • Tải lên được thực hiện chỉ qua SSL, lưu trữ với mã hoá AES‑256, và tự động xóa sau khi URL ký hết hạn.
  • Tích hợp chỉ yêu cầu một script CDN, một <div> container, và một endpoint server trả về URL ký.
  • Trình xem hỗ trợ PDF, Office, CAD và hơn 50 định dạng ảnh—không cần chuyển đổi phía server.
  • Giao diện có thể được tùy chỉnh hoàn toàn để phù hợp với thương hiệu doanh nghiệp, và trình xem cung cấp sẵn các công cụ zoom, đo lường, và lớp cho file CAD.
  • Hiệu năng được xử lý phía client; các nhà phát triển .NET chỉ cần đảm bảo nén tệp tĩnh và cân nhắc CDN cho cache.
  • Toàn bộ quy trình—from tải lên an toàn đến render trong trình duyệt—hoà nhập gọn gàng vào pipeline xác thực và ủy quyền .NET hiện có.

Câu hỏi thường gặp

H1: Tôi có cần cài đặt bất kỳ gói NuGet nào để sử dụng Doconut?
Đáp: Không. Trình xem được cung cấp dưới dạng bundle JavaScript phía client từ CDN của Doconut. Server của bạn chỉ cần middleware tiêu chuẩn của ASP.NET Core cho tải lên và mã hoá, mà bạn có thể đã có sẵn.

H2: Doconut đảm bảo tệp được xóa sau khi xem như thế nào?
Đáp: Doconut tạo một URL ký ngắn hạn có thời gian hiệu lực (thường 5 phút). Sau khi URL hết hạn, bạn (hoặc một job nền) sẽ xóa blob đã mã hoá. Điều này đảm bảo tài liệu không được lưu trữ lâu hơn cần thiết, đáp ứng các chính sách giữ dữ liệu nghiêm ngặt.

H3: Tôi có thể in hoặc xuất tài liệu từ trình xem không?
Đáp: Có. Thanh công cụ tích hợp của Doconut bao gồm các tùy chọn in và xuất, giữ nguyên chất lượng và bố cục gốc của tệp nguồn.


Sẵn sàng nhúng một trình xem tài liệu an toàn, không cần plugin vào ứng dụng .NET của bạn? Bắt đầu với Doconut App ngay hôm nay và cung cấp PDF, Office, CAD và hàng chục định dạng khác một cách an toàn và tức thì.