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

1. ติดตั้ง Doconut App SDK และเตรียมโครงการ .NET ของคุณให้รองรับหลายรูปแบบไฟล์
1.1 เพิ่มแพคเกจที่รองรับ
ใช้แพคเกจล่าสุดและทำตามคำแนะนำการตั้งค่าจากหน้า หน้าดาวน์โหลด Doconut บันทึกเวอร์ชันที่เลือกและตรวจสอบว่าแพคเกจนั้นรองรับ .NET runtime ที่คุณกำหนดเป้าหมายหรือไม่
1.2 ตรวจสอบการอ้างอิงแพคเกจ
หลังการติดตั้ง ให้ยืนยันการอ้างอิงแพคเกจและเวอร์ชันที่แก้ไขในไฟล์โครงการ การระบุเวอร์ชันอย่างชัดเจนช่วยให้การสร้างและการปรับใช้ทำได้อย่างทำซ้ำได้
1.3 เปิดใช้งาน HTTPS
ให้บริการแอปพลิเคชันผ่าน HTTPS เพื่อให้เอกสารที่อัปโหลดไม่เดินทางในรูปแบบข้อความธรรมดาบนเครือข่ายของคุณ สำหรับแอปที่โฮสต์ด้วย Kestrel ให้เพิ่มการกำหนดค่า endpoint ใน appsettings.json:
{
"Kestrel": {
"Endpoints": {
"Https": {
"Url": "
}
}
}
}
หากคุณโฮสต์บน IIS ให้ผูกใบรับรอง HTTPS กับไซต์ เมื่อเปิดใช้งาน HTTPS ไฟล์จะเดินทางผ่านช่องทางที่ปลอดภัยไปยังเซิร์ฟเวอร์ของคุณเอง ซึ่งเป็นที่ที่ SDK ทำการเรนเดอร์ไฟล์
ที่มาของความปลอดภัย SDK ทำงานภายในแอปพลิเคชันของคุณบนโครงสร้างพื้นฐานของคุณ: มันไม่เรียกไปยังเซิร์ฟเวอร์ของ Doconut ดังนั้นเอกสารจะไม่ออกจากเครือข่ายของคุณ นี่คือคุณสมบัติที่ควรออกแบบให้สอดคล้องกัน มันไม่ได้เป็นใบรับรองการปฏิบัติตามมาตรฐานใด ๆ — SDK ไม่ได้มาพร้อมกับการรับรอง ISO 27001, SOC 2 หรือ HIPAA ของตนเอง และไม่สามารถให้การรับรองเหล่านั้นกับแอปของคุณได้ สิ่งที่ทำคือการเก็บไฟล์ไว้ภายในขอบเขตที่คุณควบคุมและตรวจสอบอยู่แล้ว
2. กำหนดค่าการอัปโหลดไฟล์อย่างปลอดภัยและการจัดเก็บสำหรับการจัดการเอกสาร
นี่คือส่วนที่เป็นของคุณเอง ไม่ใช่ของ SDK และควรอธิบายอย่างชัดเจน: ความปลอดภัยในการส่งข้อมูล, การเข้ารหัสขณะพัก, การเก็บรักษาและการทำความสะอาดเป็นการตัดสินใจของแอปพลิเคชันของคุณเอง SDK ทำการเรนเดอร์เอกสาร; มันไม่ใช่ชั้นการจัดเก็บและไม่ได้เข้ารหัสดิสก์ของคุณให้
2.1 ลงทะเบียนบริการ
ใน Startup.cs (หรือ Program.cs บน .NET รุ่นใหม่) ให้ลงทะเบียนบริการของ Doconut ในคอนเทนเนอร์การฉีดพึ่งพาตามเอกสารของเวอร์ชันที่คุณติดตั้ง เมื่อ SDK ต้องการโฟลเดอร์ทำงานสำหรับผลลัพธ์การเรนเดอร์ชั่วคราว ให้ชี้ไปยังตำแหน่งที่คุณควบคุมและทำความสะอาดโฟลเดอร์นั้นเป็นความรับผิดชอบของคุณ — งานที่กำหนดเวลา หรืออายุการใช้งานที่จัดการโดยแอปพลิเคชัน ไม่ใช่การสันนิษฐาน
2.2 สร้าง endpoint สำหรับอัปโหลด
ดำเนินการสร้าง action ของคอนโทรลเลอร์ที่รับไฟล์ที่อัปโหลด, เขียนไฟล์ลงในที่เก็บข้อมูลที่แอปของคุณใช้แล้ว, และคืนค่า token ครั้งเดียวสั้น ๆ Token นี้คือสิ่งที่ตัวดูเอกสารฝั่งไคลเอนต์จะใช้เพื่อดึงและเรนเดอร์เอกสาร โปรดจำว่า การจัดเก็บเป็นหน้าที่ของคุณ: คุณให้ SDK ไบต์หรือเส้นทางไฟล์เมื่อถึงเวลาที่จะเรนเดอร์ และ SDK จะคืนหน้ากลับให้คุณ
2.3 ปกป้อง endpoint
เนื่องจาก endpoint การอัปโหลดจัดการกับข้อมูลที่ละเอียดอ่อน จึงต้องปกป้องด้วยการตรวจสอบสิทธิ์และการให้สิทธิ์ตามบทบาท (เช่น ผู้ใช้ที่อยู่ในบทบาท DocumentViewer เท่านั้นที่อาจอัปโหลด) ตรวจสอบนามสกุลและขนาดไฟล์ทั้งบนเซิร์ฟเวอร์และในเบราว์เซอร์ และถือว่าไบต์ที่อัปโหลดเป็นข้อมูลที่ไม่เชื่อถือได้
ห้ามข้ามขั้นตอนนี้โดยสมมติว่า SDK ครอบคลุมไว้ การเข้ารหัสขณะพัก, การจัดการคีย์และการทำความสะอาดไฟล์ที่ไม่มีเจ้าของเป็นหน้าที่ของแอปของคุณ หากคุณต้องการเอกสารที่เข้ารหัสบนดิสก์ ให้ใช้ฟีเจอร์ของแพลตฟอร์มที่คุณเชื่อถืออยู่แล้ว — ตัวดูเอกสารไม่ได้เป็นที่ที่ควรทำเช่นนั้น
3. ฝังคอมโพเนนต์ Viewer ใน ASP.NET Core, MVC หรือ WebForms
เมื่อแบ็กเอนด์พร้อมแล้ว ให้เริ่มต้น viewer ด้วย assets และ API ที่ระบุไว้สำหรับเวอร์ชัน Doconut ที่ติดตั้ง
3.1 เพิ่ม JavaScript bundle
ในเลเอาต์ที่ใช้ร่วมกันของคุณ ให้รวมเฉพาะทรัพยากร viewer ที่อธิบายไว้ในเอกสารซึ่งตรงกับ SDK ที่ติดตั้ง อย่าสมมติชื่อหรือที่ตั้งของ bundle ที่คงที่ข้ามเวอร์ชัน
3.2 สร้าง Razor view สำหรับ Core/MVC
เพิ่ม view (เช่น Views/Document/View.cshtml) ที่มีช่องรับไฟล์, อิลิเมนต์คอนเทนเนอร์สำหรับ viewer, และสคริปต์เล็ก ๆ ที่อัปโหลดไฟล์ที่เลือก, รับ token ที่ปลอดภัย, และเริ่มต้น widget Doconut Viewer
สคริปต์ควรทำดังนี้:
- ดึงไฟล์ที่เลือกจากอิลิเมนต์
<input type="file"> - ส่งไฟล์ไปยัง endpoint การอัปโหลดโดยใช้
fetchหรือXMLHttpRequest - เมื่อได้รับการตอบกลับที่ได้รับอนุญาตแล้ว ให้เริ่มต้น viewer ด้วย API ที่รองรับสำหรับเวอร์ชันที่ติดตั้ง
3.3 เทียบเท่าใน WebForms
ในหน้า WebForms (เช่น DocumentViewer.aspx) ให้วางคอนโทรล asp:FileUpload, ปุ่มเพื่อเรียกการอัปโหลด, และ <div> ที่จะเป็นโฮสต์ของ viewer ในโค้ด‑เบื้องหลัง ให้เรียกบริการ Doconut เพื่อเก็บไฟล์ที่อัปโหลด, รับ token, และลงทะเบียนสคริปต์เริ่มต้นที่เรียกฟังก์ชัน JavaScript (initViewer(token)) เพื่อสร้างอินสแตนซ์ viewer
เหตุผลที่ทำแบบนี้: เส้นทางการเรนเดอร์เดียวที่ให้บริการสามโมเดล UI ของ .NET โดยไม่มีการติดตั้งอะไรบนเครื่องของผู้ใช้ปลายทาง
4. ปรับแต่ง Viewer สำหรับการจัดการเอกสาร
Viewer จะเรนเดอร์ภายในคอนเทนเนอร์บนหน้าเว็บของคุณเอง ดังนั้นแอปพลิเคชันรอบข้างจึงเป็นของคุณแล้ว นอกจากนั้น ให้ใช้ชื่อและค่าเริ่มต้นของตัวเลือกจากเอกสารของเวอร์ชันที่คุณติดตั้ง แทนที่จะอ้างอิงจากบทแนะนำใด ๆ รวมถึงบทแนะนำนี้ด้วย — พื้นผิวการกำหนดค่าจะเปลี่ยนระหว่างการปล่อยเวอร์ชันและชื่อออปชันที่กำหนดค่าแบบฮาร์ดโค้ดเป็นสิ่งที่มักจะทำให้การอัปเกรดล้มเหลว
สิ่งที่ควรตัดสินใจก่อนหน้า:
4.1 ควบคุมที่ผู้ใช้จะได้รับ
ตัดสินใจว่าผู้ใช้ของคุณควรสามารถดาวน์โหลดไฟล์ต้นฉบับได้หรือเพียงอ่านหน้าเรนเดอร์เท่านั้น การพิมพ์ที่ควบคุมได้เป็นส่วนหนึ่งของ viewer ไม่ใช่การซื้อแยกต่างหาก ดังนั้นกฎการพิมพ์จึงเป็นคำถามของการกำหนดค่า ไม่ใช่เรื่องลิขสิทธิ์
4.2 ปลั๊กอินที่คุณจริง ๆ ต้องการ
มีสี่ปลั๊กอินที่ได้รับใบอนุญาตแยกกัน และรายการสั้นพอที่จะจดจำได้: Annotation, Converter, DICOM และ Search การแปลง — DOC ไปเป็น PDF และอื่น ๆ — คือปลั๊กอิน Converter การค้นหาข้อความคือปลั๊กอิน Search หากคุณไม่ต้องการทั้งสอง คุณก็ไม่ต้องซื้อใด ๆ
4.3 การแปลภาษา
หากแอปพลิเคชันของคุณหลายภาษา ให้ตรวจสอบว่าเวอร์ชันที่ติดตั้งมีสตริง UI ของ viewer ให้เลือกใช้ก่อนที่คุณจะออกแบบรอบ ๆ
ทำไมเรื่องนี้ถึงสำคัญ: viewer ควรดูเหมือนเป็นส่วนหนึ่งของผลิตภัณฑ์ของคุณ สิ่งที่ไม่ควรทำคือสัญญาอย่างเงียบ ๆ ว่าผู้ใช้ของคุณมีความสามารถที่ใบอนุญาตที่คุณซื้อไม่ได้รวมไว้
5. ทดสอบการบูรณาการกับทุกฟอร์แมตที่รองรับ
ก่อนเปิดใช้งานจริง ให้ทำการตรวจสอบอย่างรวดเร็วสำหรับแต่ละประเภทไฟล์ที่คุณคาดว่าผู้ใช้ของคุณจะดู ใช้ viewer ของ Doconut App เปิดไฟล์ตัวอย่างของแต่ละฟอร์แมตและตรวจสอบว่าการเรนเดอร์, การนำทาง, และเครื่องมือพิเศษทำงานตามที่อธิบายไว้หรือไม่
| รูปแบบ | สถานการณ์ทดสอบ | ผลลัพธ์ที่คาดหวัง |
|---|---|---|
| รายงานหลายหน้าใหญ่ที่มีรูปภาพฝังอยู่ | การเลื่อนหน้าเรียบ, ซูม, และการเรนเดอร์สีที่แม่นยำ | |
| DOCX | เอกสาร Word ที่มีตารางและเชิงอรรถ | ข้อความ, ตาราง, และเชิงอรรถทั้งหมดแสดง; ไม่มีการเปลี่ยนแปลงเลย์เอาต์ |
| XLSX | สเปรดชีตที่มีแผนภูมิ | แผนภูมิเหล่านั้นเรนเดอร์เป็นกราฟิกเวกเตอร์; การซูมยังคงความคมชัด |
| PPTX | ชุดสไลด์ที่มีการสร้างภาพเคลื่อนไหว | ทุกการสร้างบนสไลด์จะเรนเดอร์ซ้อนกันในเฟรมเดียว — นั่นคือพฤติกรรมที่คาดไว้, ไม่ใช่ข้อบกพร่อง |
| DWG | ภาพวาดเทคนิคที่มีเลเยอร์และการอ้างอิงภายนอก | สามารถสลับเลเยอร์, การวัดระยะและพื้นที่ทำงาน; xrefs และฟอนต์ SHX ไม่ปรากฏเพราะไม่มีในไฟล์ |
| PSD | ไฟล์ Photoshop แบบหลายเลเยอร์ | คอมโพสิตที่บันทึกไว้เรนเดอร์, เลเยอร์ที่ซ่อนอยู่ยังคงซ่อน; สีคงที่เมื่อซูม |
| SVG | กราฟิกเวกเตอร์ที่มีไล่สี | ไล่สีเรนเดอร์อย่างราบรื่น; การซูมยังคงคมชัด |
| TIFF | สแกนความละเอียดสูง | ภาพโหลดเร็ว; การซูมเปิดเผยรายละเอียด |
ทดสอบด้วยไฟล์จริงของผู้ใช้ของคุณ ไม่ใช่ตัวอย่างที่สะอาดตา ฟอร์แมตที่ทำให้คนประหลาดใจมักเป็นฟอร์แมตที่มีความแปลกประหลาดอยู่ในตัวเอง — DWG ที่อ้างอิงถึงสี่ภาพวาดอื่น, สเปรดชีตที่ค่าที่เก็บไว้ไม่เคยคำนวณใหม่, หรือเด็คที่ฟอนต์ไม่ได้ฝังไว้ ตัว viewer ฟรีที่ Doconut.app ใช้เอนจินเดียวกัน ดังนั้นจึงเป็นวิธีที่รวดเร็วในการดูว่าไฟล์ที่ค่อนข้างแปลกจะออกมาอย่างไรก่อนที่คุณจะเขียนโค้ดใด ๆ.
สรุป
การฝังตัวดูเอกสารแบบไม่มีปลั๊กอินสรุปได้เป็นสี่สิ่ง: ติดตั้ง SDK, ปกป้องเส้นทางอัปโหลดของคุณเอง, เรนเดอร์ลงในคอนเทนเนอร์บนหน้าเว็บของคุณ, และกำหนดค่าเฉพาะสิ่งที่เวอร์ชันที่ติดตั้งบันทึกไว้. การมีส่วนร่วมของตัวดูเอกสารต่อความปลอดภัยนั้นจำกัดและเป็นจริง — มันทำงานบนเซิร์ฟเวอร์ของคุณและไม่ได้ส่งข้อมูลออกไป. สิ่งอื่นทั้งหมดในรายการนั้นเป็นของแอปพลิเคชันของคุณ, และไม่มี SDK ใดสามารถทำหน้าที่แทนคุณได้.
พร้อมที่จะประเมินมันหรือยัง? เริ่มต้นด้วย หน้าดาวน์โหลดและเอกสารอย่างเป็นทางการของ Doconut, จากนั้นทดสอบ SDK ภายในการตรวจสอบความปลอดภัยเดียวกันที่ใช้กับส่วนที่เหลือของแอปพลิเคชัน ASP.NET บน Windows ของคุณ.