วิธีฝังตัวดูเอกสารแบบไม่มีปลั๊กอินใน ASP.NET
10/7/2569

วิธีฝังตัวดูเอกสารแบบไม่มีปลั๊กอินใน ASP.NET

คู่มือแบบขั้นตอนสำหรับวิศวกร .NET ที่ต้องการฝังตัวดูเอกสารแบบปลอดปลั๊กอินของ Doconut App ที่ปลอดภัยลงในโครงการ ASP.NET Core, MVC หรือ WebForms

คุณสามารถฝังตัวดูเอกสารแบบไม่มีปลั๊กอินลงในแอปพลิเคชัน ASP.NET Core, MVC หรือ WebForms ได้โดยไม่ต้องขอให้ผู้ใช้ติดตั้งอะไรเลย
องค์กรที่ให้บริการสัญญา, แบบแปลน หรือสินทรัพย์การออกแบบต้องการตัวดูเอกสารที่เคารพนโยบายความปลอดภัยขององค์กรและไม่บังคับให้ผู้ใช้ติดตั้งปลั๊กอินเบราว์เซอร์รุ่นเก่า Doconut ให้ SDK ตัวดูเอกสาร .NET สำหรับการทำงานในเบราว์เซอร์ เช่น PDF, Office, CAD, อีเมล และรูปภาพ ไม่ใช่บริการโฮสต์ที่คุณเรียกใช้: คุณติดตั้งมันลงในแอปของคุณเองและมันจะแสดงผลที่นั่น บทความนี้สรุปการตัดสินใจในการผสานรวมโดยไม่พึ่งพาโค้ดตัวอย่างที่เจาะจงเวอร์ชัน

ขอชี้แจงก่อน เนื่องจากผลิตภัณฑ์สองตัวนี้ง่ายต่อการสับสน Doconut.app เป็นตัวดูเว็บฟรี — ไฟล์เดียวที่เปิดในแท็บเบราว์เซอร์และจะถูกลบหลังจากนั้น ไม่ใช่สิ่งที่คุณฝัง สิ่งที่คุณฝังคือ Doconut Viewer, SDK, และเนื้อหาต่อไปนี้เกี่ยวกับมัน

ตัวดูเอกสารที่ฝังเชื่อมต่อกับแบ็กเอนด์ ASP.NET ที่ควบคุม
ตัวดูเอกสารที่ฝังเชื่อมต่อกับแบ็กเอนด์ ASP.NET ที่ควบคุม

1. ทำไมความปลอดภัยและการเรนเดอร์แบบไม่มีปลั๊กอินจึงสำคัญสำหรับเว็บแอป .NET

องค์กรสมัยใหม่มองว่าเอกสารทุกไฟล์เป็นแหล่งรั่วไหลของข้อมูล เมื่อคุณฝังตัวดูเอกสารที่พึ่งพา ActiveX, Flash หรือไคลเอนต์เนทีฟ คุณจะสืบทอดความเสี่ยงสามประการ:

ความเสี่ยงผลกระทบต่อแอปพลิเคชัน .NET ของคุณวิธีที่ Doconut App ขจัด
การพึ่งพาปลั๊กอินผู้ใช้ต้องติดตั้งหรือเปิดใช้งานปลั๊กอินเบราว์เซอร์ ทำให้เกิดตั๋วสนับสนุนและปัญหาการปฏิบัติตามDoconut ทำงานทั้งหมดใน HTML5/Canvas ไม่ต้องการ ปลั๊กอินใดๆ
การส่งข้อมูลที่ไม่เข้ารหัสไฟล์ถูกส่งผ่าน HTTP หรือเก็บเป็นข้อความธรรมดา ทำให้ละเมิด GDPR, HIPAA หรือแนวนโยบายภายในSDK ทำงานภายในแอปของคุณ ดังนั้นการส่งและการจัดเก็บจึงอยู่ภายใต้นโยบาย TLS และการเข้ารหัสที่คุณกำหนดไว้แล้ว Doconut ไม่เพิ่มขั้นตอนใหม่
วงจรชีวิตที่ไม่ได้ควบคุมไฟล์อาจค้างอยู่บนเซิร์ฟเวอร์ ทำให้พื้นที่เสี่ยงต่อการละเมิดเพิ่มขึ้นการเก็บรักษาเป็นของคุณที่กำหนดได้ เพราะเอกสารไม่ออกจากสภาพแวดล้อมของคุณ ผลลัพธ์การเรนเดอร์ชั่วคราวจะถูกบันทึกตามที่คุณตั้งค่าและทำความสะอาดตามกำหนดเวลาของคุณ

ข้อเท็จจริงเชิงสถาปัตยกรรมที่สำคัญคือ SDK ถูกติดตั้งในสภาพแวดล้อมของคุณเองและไม่เรียกใช้เซิร์ฟเวอร์ของ Doconut ใดๆ ไม่มีการอัปโหลดข้อมูลไปยังเรา ดังนั้นจึงไม่มีผู้ประมวลผลบุคคลที่สามที่ต้องเพิ่มในแผนผังข้อมูลและไม่มีนโยบายการเก็บข้อมูลของผู้ขายที่ต้องสอดคล้องกับของคุณ

2. เตรียมโครงการ .NET

ใช้แพ็กเกจ, เอกสาร, และตัวอย่างที่ตรงกับเวอร์ชัน Doconut ที่เลือกสำหรับโครงการ หน้า หน้าโหลด Doconut อย่างเป็นทางการเป็นจุดเริ่มต้นที่เชื่อถือได้

ก่อนการผสานรวม ให้ยืนยัน runtime .NET ที่เป้าหมาย บันทึกเวอร์ชันแพ็กเกจ เก็บการกำหนดค่าใบอนุญาตให้อยู่ไกลจากระบบควบคุมเวอร์ชัน และเริ่มต้นด้วยเอกสารตัวอย่าง ASP.NET Core, MVC, และ WebForms มีวงจรชีวิตแอปพลิเคชันที่แตกต่างกัน ดังนั้นการตั้งค่าของพวกมันจึงไม่ควรถือว่าเหมือนกัน

3. สร้างจุดเชื่อมต่ออัปโหลดที่ปลอดภัย – AES‑256, SSL, และการลบอัตโนมัติ

SDK สามารถอ่านเอกสารจากเส้นทางจริง, สตรีม, อาร์เรย์ไบต์, ฐานข้อมูล, URL, ตำแหน่งอินทราเน็ต, หรือผู้ให้บริการคลาวด์เช่น S3, Azure Storage, Google Cloud หรือ Dropbox สิ่งที่ไม่ควรอ่านคือเส้นทางที่เลือกโดยเบราว์เซอร์ วางการตรวจสอบการอนุญาตระหว่างคำขอและเอกสาร ไม่ว่าที่มาจะเป็นอะไร ด้านล่างเป็นรูปแบบทั่วไปหนึ่งสำหรับจุดเชื่อมต่อดังกล่าวใน ASP.NET Core; แนวคิดเดียวกันนี้ใช้ได้กับ MVC และ WebForms

// ตัวอย่างโค้ดจะอยู่ที่นี่และไม่ถูกแปล

กระบวนการทำงานด้านเซิร์ฟเวอร์

  1. รับไฟล์ที่อัปโหลด – ใช้ IFormFile มาตรฐาน (หรือ HttpPostedFile ใน WebForms) เพื่อรับเอกสารจากไคลเอนต์.
  2. เข้ารหัสไฟล์ด้วย AES‑256 – ก่อนบันทึกสตรีม, เข้ารหัสโดยใช้ไลบรารีที่เชื่อถือได้เช่น System.Security.Cryptography.Aes. เก็บบล็อบที่เข้ารหัสในตำแหน่งที่ปลอดภัย (เช่น Azure Blob Storage ที่เปิดใช้งานการเข้ารหัสด้านเซิร์ฟเวอร์, หรือบัคเก็ต S3 ที่ใช้ SSE‑AES256).
  3. สร้าง URL ที่ลงนามและมีอายุสั้น – สร้าง URL ที่ใช้ได้เพียงไม่กี่นาที (เช่น 5 นาที). URL ควรเป็น HTTPS และรวมโทเคนเชิงคริปโตที่ Doconut สามารถตรวจสอบได้. ผู้ให้บริการคลาวด์ส่วนใหญ่มีฟีเจอร์ “pre‑signed URL” ที่ตอบโจทย์นี้.
  4. ส่ง URL ที่ลงนามกลับไปยังไคลเอนต์ – ส่งการตอบกลับเป็น JSON ที่มี URL อยู่. ไคลเอนต์จะส่ง URL นี้ให้กับตัวดูของ Doconut.
  5. กำหนดการลบอัตโนมัติ – หลังจาก URL ที่ลงนามหมดอายุ, งานเบื้องหลัง (Hangfire, Azure Functions ฯลฯ) จะลบบล็อบที่เข้ารหัส, เพื่อรับประกันว่าไฟล์จะไม่ค้างอยู่บนเซิร์ฟเวอร์.

เทียบเท่าใน MVC / WebForms

  • MVC – ใส่ตรรกะเดียวกันไว้ในแอคชันของคอนโทรลเลอร์ปกติและคืนค่า JsonResult.
  • WebForms – สร้างตัวจัดการ .ashx หรือเมธอดหน้าเพจที่ทำตามขั้นตอนเดียวกัน: รับ Request.Files[0], เข้ารหัส, สร้าง pre‑signed URL, และเขียนการตอบกลับเป็น JSON.

4. แสดงเอกสารผ่าน SDK ที่ติดตั้ง

เก็บการเข้าถึงเอกสารไว้บนเซิร์ฟเวอร์และบังคับการอนุญาตก่อนประมวลผลไฟล์หรือสตรีม. ลำดับการเรนเดอร์และการเริ่มต้น UI ที่แม่นยำขึ้นอยู่กับเวอร์ชัน; ให้ปฏิบัติตามเอกสารอย่างเป็นทางการที่มาพร้อมกับบิลด์ที่ติดตั้งแทนการคัดลอก API JavaScript สากลที่ไม่ได้ตรวจสอบ.

ทำไมวิธีนี้จึงใช้ได้กับทุกสภาพแวดล้อม .NET

  • ASP.NET Core Razor – การเริ่มต้นอยู่ในวิวเดียวกับที่โฮสต์ฟอร์มอัปโหลด, ดังนั้นมีเพียงหน้าเดียวที่ต้องพิจารณา.
  • MVC – ใช้ @section Scripts เพื่อแทรกสคริปต์เดียวกัน; คอนโทรลเลอร์คืนค่า JSON ที่ $.ajax ของ MVC สามารถใช้งานได้.
  • WebForms – ลงทะเบียนสคริปต์ด้วย ClientScript.RegisterStartupScript หลังจากการอัปโหลดเสร็จ, จากนั้นเรียก launchViewer แบบเดียวกัน.

การเรนเดอร์เกิดขึ้นบนเซิร์ฟเวอร์ของคุณ, และนี่คือจุดประสงค์: เบราว์เซอร์จะได้รับหน้าเว็บที่เรนเดอร์แล้วแทนเอกสารต้นฉบับ, ซึ่งเป็นเหตุผลที่ไฟล์ DWG หรือ PSD สามารถเปิดได้บนเครื่องที่ไม่มี AutoCAD หรือ Photoshop. ปรับขนาดเซิร์ฟเวอร์ตามความต้องการ — PDF สแกน 300 หน้าเป็นงานที่ต้องใช้ทรัพยากรจริง, และตอนนี้เป็นชั้นของคุณที่ทำหน้าที่นั้น.

5. ปรับแต่งตัวดูให้สอดคล้องกับพอร์ทัลของคุณ

องค์กรส่วนใหญ่ต้องการให้ตัวดูดูเหมือนเป็นส่วนหนึ่งของผลิตภัณฑ์ที่มันฝังอยู่, ไม่ใช่หน้าต่างที่มองเห็นจากผลิตภัณฑ์ของคนอื่น. รูปลักษณ์ของตัวดูและชุดควบคุมที่เปิดให้ใช้งานสามารถกำหนดค่าได้, และตัวเลือกที่มีขึ้นอยู่กับบิลด์ที่คุณติดตั้ง.

ให้ใช้ชื่อของตัวเลือกเหล่านั้นจากเอกสารที่มาพร้อมกับเวอร์ชันของคุณแทนการอ้างอิงจากบล็อกโพสต์. พื้นผิวการกำหนดค่าตัวดูเป็นสิ่งที่มักถูกเปลี่ยนชื่อระหว่างการปล่อยเวอร์ชัน, และสคริปต์ที่คัดลอกจากบทความที่เก่ากว่าสองเวอร์ชันจะล้มเหลวในลักษณะที่ดูเหมือนปัญหาการลิขสิทธิ์.

การตัดสินใจที่ควรทำก่อนเปิดเอกสารนั้นคือควบคุมใดบ้างที่แต่ละบทบาทควรเห็น. ผู้ใช้สามารถพิมพ์, ดาวน์โหลด, หรือเพียงแค่เลื่อนหน้าผ่านเอกสารเป็นคำถามเกี่ยวกับสิทธิ์ที่แอปของคุณรู้คำตอบแล้ว. กำหนดค่าตัวดูจากคำตอบนั้น, แทนการเปิดเผยทุกควบคุมและหวังว่าไม่มีใครคลิก.

6. ประสิทธิภาพและการขยายขนาด – รักษาประสบการณ์ให้ตอบสนองเร็ว

การฝังตัวดูในพอร์ทัลที่มีการเข้าชมสูงทำให้เกิดข้อกังวลสองประการ: เวลาโหลด และ การเรนเดอร์พร้อมกัน. Doconut App จัดการทั้งสองอย่างพร้อมใช้งาน, แต่คุณสามารถเสริมประสิทธิภาพด้วยเทคนิคเฉพาะ .NET บางอย่าง.

ข้อกังวลวิธีแก้ไข
ความหน่วงของหน้าแรกการโหลดหน้าอัตโนมัติทำให้ผู้อ่านเห็นหน้าแรกขณะที่ส่วนที่เหลือยังกำลังเตรียมอยู่. เปิดการบีบอัดไฟล์สถิต (app.UseResponseCompression()) และแคชทรัพยากรของไคลเอนต์.
การดูไฟล์เดียวซ้ำหลายครั้งเอกสารที่เปิดบ่อยสามารถเรนเดอร์ครั้งเดียวและให้บริการจากผลลัพธ์ที่แคชไว้แทนการเรนเดอร์ใหม่ทุกคำขอ. คำถามที่พบบ่อยอธิบายตัวเลือก .DCN สำหรับกรณีนี้.
ค่าใช้จ่ายการเรนเดอร์การเรนเดอร์เป็นงานของเซิร์ฟเวอร์. ลดความละเอียดของภาพในกรณีที่ความแม่นยำไม่สำคัญเป็นวิธีที่มีผลมากที่สุด, และเป็นการเปลี่ยนแปลงการตั้งค่า ไม่ใช่การเปลี่ยนแปลงโค้ด.
ความพร้อมทำงานพร้อมกันตรวจสอบการตั้งค่า timeout และ AutoClose ภายใต้การโหลด, และอ่านตัวอย่างเว็บฟาร์มก่อนสันนิษฐานว่าโหนดเดียวพอ. จำกัดอัตราการอัปโหลดที่ endpoint.

วัดผลด้วยเอกสารของคุณเอง. PDF ข้อความขนาด 5 MB และสแกน 5 MB ของรายงานเดียวกันทำงานแตกต่างกันอย่างสิ้นเชิง, และมีเพียงหนึ่งไฟล์ที่ปรากฏในการทดสอบเชิงสังเคราะห์.

ประเด็นสำคัญ

  • Doconut Viewer เป็น .NET SDK ที่ไม่ต้องใช้ปลั๊กอิน ซึ่งทำงานร่วมกับ ASP.NET Core, MVC, และ WebForms ผู้ใช้ของคุณไม่ต้องติดตั้งอะไรเลย.
  • มันถูกติดตั้งในสภาพแวดล้อมของคุณเองและไม่เรียกไปยังเซิร์ฟเวอร์ของ Doconut ดังนั้นเอกสารจะอยู่ภายในขอบเขตที่คุณควบคุมอยู่แล้ว.
  • ความปลอดภัยการส่งข้อมูล, การเข้ารหัสขณะพักและการเก็บรักษาเป็นสิ่งที่คุณกำหนดได้ เพราะไฟล์ไม่เคยออกจากโครงสร้างพื้นฐานของคุณ Doconut จะไม่กลายเป็นผู้ประมวลผลในแผนผังข้อมูลของคุณ.
  • แคตาล็อก SDK มี 75 ส่วนขยายไฟล์ใน 18 กลุ่ม — PDF, Office, CAD, Visio, Project, อีเมล, eBook และรูปภาพ, พร้อม DICOM ผ่านปลั๊กอินของมันเอง.
  • การเรนเดอร์เกิดขึ้นบนเซิร์ฟเวอร์ นั่นคือสิ่งที่ทำให้เบราว์เซอร์สามารถเปิดไฟล์ DWG ได้ และเป็นรายการที่ต้องคำนึงถึงขนาดด้วย.
  • การควบคุมที่ผู้ใช้เห็น — พิมพ์, ดาวน์โหลด, หรือเพจเท่านั้น — ควรสอดคล้องกับสิทธิ์ที่แอปพลิเคชันของคุณมีอยู่แล้ว.
  • ใช้ชื่อของตัวเลือกการกำหนดค่าจากเอกสารของเวอร์ชันที่คุณติดตั้ง ไม่ใช่จากบทความใดๆ

คำถามทั่วไป

Q1: ฉันต้องติดตั้งอะไรบนเซิร์ฟเวอร์หรือไม่?
A: ใช่ Doconut Viewer เป็น .NET SDK ที่คุณติดตั้งลงในแอปพลิเคชันของคุณ — เริ่มต้นจาก หน้าดาวน์โหลดของ Doconut และใช้แพคเกจและเอกสารสำหรับเวอร์ชันที่คุณเลือก ไม่มี endpoint ที่โฮสต์ให้เรียกใช้ และไม่มีอะไรให้บริการจาก CDN ของ Doconut.

Q2: ใครลบไฟล์หลังการดู?
A: คุณเอง เพราะเอกสารและผลลัพธ์การเรนเดอร์ชั่วคราวทั้งหมดอยู่ในสภาพแวดล้อมของคุณ การเก็บรักษาจึงเป็นการตั้งค่าในแอปพลิเคชันของคุณ ไม่ใช่คำสัญญาจากผู้ขาย ตัดสินใจว่าไฟล์ชั่วคราวจะถูกเขียนลงที่ไหนและอะไรจะลบไฟล์เหล่านั้น ก่อนที่คุณจะเข้าสู่การผลิต.

Q3: ผู้ใช้สามารถพิมพ์เอกสารได้หรือไม่?
A: การพิมพ์เป็นความสามารถของตัวดูและสามารถให้หรือไม่ให้ตามผู้ใช้ได้ โปรดทราบว่าการพิมพ์ที่ควบคุมได้เป็นส่วนหนึ่งของตัวดูเอง — ไม่ใช่หนึ่งในสี่ปลั๊กอินที่ได้รับอนุญาต ซึ่งได้แก่ Annotation, Converter, DICOM และ Search.

Q4: มันสามารถแปลงเอกสารเป็นรูปแบบอื่นได้หรือไม่?
A: นั่นคือปลั๊กอิน Converter ที่มีการให้สิทธิ์แยกต่างหาก การดูและการแปลงเป็นผลิตภัณฑ์ที่แตกต่างกันที่นี่ และควรชัดเจนว่ากระบวนการทำงานต้องการอันไหนจริงๆ.

พร้อมที่จะฝังตัวดูเอกสารแบบไม่มีปลั๊กอินในแอปพลิเคชัน .NET ของคุณหรือยัง? เริ่มต้นจาก หน้าดาวน์โหลดของ Doconut — ใบอนุญาตทดลองใช้งานฟรี. และหากสิ่งที่คุณต้องการจริงๆ คือการเปิดไฟล์หนึ่งไฟล์วันนี้, Doconut.app ทำได้ในแท็บเบราว์เซอร์และจะลบไฟล์นั้นหลังจากนั้น.