ساخت یک نمایشگر سند خود‑میزبان در .NET – راهنمای گام‑به‑گام
۱۴۰۵/۷/۳

ساخت یک نمایشگر سند خود‑میزبان در .NET – راهنمای گام‑به‑گام

بیاموزید چگونه یک نمایشگر سند سریع، امن و خود‑میزبان را در یک برنامه .NET با استفاده از SDK Doconut جاسازی کنید و پیش‌نمایش‌های PDF، Office، CAD را بدون سرویس‌های خارجی ارائه دهید.

یک نمایشگر سند خود‑میزبان و فوق‌العاده سریع خواهید داشت که داخل برنامه .NET شما اجرا می‌شود

تا پایان این راهنما می‌توانید فایل‌های PDF، اسناد Office، نقشه‌های CAD و ده‌ها فرمت دیگر را مستقیماً در مرورگر باز کنید، با زمان بارگذاری زیر یک ثانیه، بدون تماس با سرویس‌های SaaS خارجی و با کنترل کامل بر امنیت.


پیش‌نیازها

چه چیزی نیاز داریدچرا مهم است
.NET 6 یا بالاتر (SDK برای .NET 6+ هدف‌گذاری شده است)تضمین سازگاری با SDK Online Document Viewer
یک سرور Windows یا Linux که بتوانید برنامه‌تان را روی آن اجرا کنید (درون‌سازمانی یا ابر خصوصی)خود‑میزبانی مستلزم این است که نمایشگر داخل زیرساخت‌های شما مستقر باشد
دسترسی به فید NuGet Online Document Viewer (https://doconut.com)SDK به‌صورت بستهٔ NuGet توزیع می‌شود
دانش پایه‌ای از ASP.NET Core و JavaScript سمت‌کاربریک نقطهٔ انتهایی که URL امضا شده برمی‌گرداند و سپس نمایشگر از مرورگر اجرا می‌شود
مکان ذخیره‌سازی برای فایل‌های منبع (سیستم فایل، ذخیره‌سازی Blob و غیره)نمایشگر فایل‌ها را از مسیر محلی یا شبکه‌ای می‌خواند؛ منبع باید برای فرآیند سرور قابل دسترسی باشد

عدم داشتن هر یک از این موارد باعث می‌شود ساخت قبل از اجرای اولین خط کد متوقف شود.


نصب SDK Online Document Viewer

راه‌حل خود را در Visual Studio یا IDE مورد علاقه‌تان باز کنید و SDK رسمی را از طریق مدیر NuGet اضافه کنید:

dotnet add package Doconut.NET8

این بسته شامل موتور رندرینگ، مبدل‌های فرمت و لایهٔ HTTP نازکی است که صفحات تولید شده را سرو می‌کند. چون SDK در برنامهٔ شما کامپایل می‌شود، در زمان اجرا هیچ سرویس خارجی‌ای تماس نمی‌گیرد.

پس از بازگردانی بسته، سرویس‌های SDK را در Program.cs (یا Startup.cs برای قالب‌های قدیمی) ثبت کنید. این ثبت، خط لولهٔ رندرینگ را به کانتینر DI ASP.NET Core تزریق می‌کند و در دسترس کنترلرهای شما قرار می‌دهد.


پیکربندی خط لولهٔ رندرینگ برای فرمت‌های مورد نیاز

نمایشگر بیش از ۵۰ فرمت را به‌صورت پیش‌فرض پشتیبانی می‌کند، از جمله:

  • PDF, DOC, DOCX, ODT, RTF
  • XLS, XLSX, CSV, ODS
  • PPT, PPTX, ODP
  • DWG, DXF, DGN (CAD)
  • PSD, SVG, TIFF, WEBP, ICO
  • EML, MSG, EPUB, MOBI, MPP, VSD

هنگامی که درخواست می‌رسد، SDK نوع فایل را تشخیص داده و مبدل مناسب را انتخاب می‌کند. برای بهترین عملکرد، لایهٔ کش داخلی را فعال کنید که صفحهٔ رندر شده را در حافظه برای مدت درخواست نگه می‌دارد؛ این همان چیزی است که تجربهٔ «فوق‌العاده سریع – رندرینگ سند آنی با عملکرد بهینه و بارگذاری زیر ثانیه‌ای» را فراهم می‌کند.

در کنترلر خود، متد رندرینگ SDK (مثلاً RenderAsync) را فراخوانی کنید و مسیر مطلق فایل منبع را پاس دهید. این متد یک قطعهٔ HTML برمی‌گرداند که شامل یک نمایشگر مبتنی بر canvas است. چون رندرینگ روی سرور انجام می‌شود، کلاینت فقط markup آمادهٔ نمایش را دریافت می‌کند که پردازش سنگین سمت کلاینت را حذف می‌کند.


ایمن‌سازی نمایشگر با URLهای مبتنی بر توکن و محدودیت‌های اختیاری

حاکمیت داده و رعایت GDPR از نگرانی‌های رایج برای استقرارهای درون‌سازمانی هستند. SDK با سیستم احراز هویت ASP.NET Core یکپارچه می‌شود و به شما امکان می‌دهد توکنی امضا شده تولید کنید که دسترسی یک‌بار مصرف به سند خاصی را اعطا می‌کند.

جریان معمول:

  1. سمت کاربر از API شما توکن پیش‌نمایش می‌خواهد و شناسهٔ سند را ارائه می‌دهد.
  2. API شما مجوزهای کاربر را اعتبارسنجی می‌کند، توکنی شبیه JWT تولید می‌کند که مسیر فایل و زمان انقضا را رمزگذاری می‌کند و توکن را برمی‌گرداند.
  3. سمت کاربر توکن را به URL نمایشگر (مثلاً /viewer?token=…) اضافه می‌کند. SDK توکن را در هر درخواست اعتبارسنجی می‌کند و هر توکن دستکاری‌شده یا منقضی‌شده را رد می‌کند.

اگر نیاز دارید کاربران نتوانند سند را دانلود یا چاپ کنند، گزینه‌های رندرینگ ارائه‌شده توسط SDK را طوری تنظیم کنید که آن اقدامات غیرفعال شوند. لایهٔ JavaScript نمایشگر سپس دکمهٔ دانلود را مخفی می‌کند، میانبر چاپ را سرکوب می‌کند و منوی کلیک راست را مسدود می‌سازد.


تأیید اینکه همه چیز کار می‌کند

  1. به صفحه‌ای که نمایشگر را میزبانی می‌کند بروید.
  2. سند باید ظرف یک ثانیه ظاهر شود، با نوارهای اسکرول، کنترل‌های زوم و جعبهٔ جستجو.
  3. اگر نمایشگر را برای غیرفعال کردن دانلود تنظیم کرده‌اید، دکمهٔ «Download» باید مخفی باشد.
  4. کلیک راست بر روی سند نباید منوی زمینه مرورگر را باز کند وقتی این محدودیت فعال باشد.
  5. پس از انقضای توکن (به‌طور پیش‌فرض ۵ دقیقه)، تازه‌سازی صفحه باید خطای «401 Unauthorized» را برگرداند، که تأیید می‌کند اعتبارسنجی توکن فعال است.

اگر هر یک از این بررسی‌ها شکست خورد، مرحلهٔ مربوطه را بازبینی کنید: ثبت نام نادرست SDK، تولید توکن اشتباه، یا عدم تنظیم پرچم‌های امنیتی.