نعم—يمكنك تضمين عارض ملفات آمن بدون مكوّن إضافي عبر الإنترنت في أي تطبيق ASP.NET Core أو MVC أو WebForms خلال بضع دقائق فقط، وتقوم Doconut App بكل العمل الشاق.
تحتاج الشركات التي تقدم عقودًا أو رسومات أو أصول تصميم إلى عارض يحترم سياسات الأمان المؤسسية، ويعمل على جميع المتصفحات، ولا يجبر المستخدمين على تثبيت مكوّنات إضافية من طرف ثالث. تقدم Doconut App ذلك بالضبط: عارض قائم على المتصفح يدعم PDF و Office و CAD وأكثر من 50 تنسيقًا آخر، مع تشفير AES‑256، وتحميلات عبر SSL فقط، وواجهة مستخدم قابلة للتخصيص بالكامل. يشرح هذا المقال سير العمل بالكامل—من تأمين تحميل الملف إلى عرض العارض—حتى تتمكن من تقديم حل مؤسسي مصقول دون الحاجة إلى كتابة محرك عرض من الصفر.
1. لماذا الأمان وعرض بدون مكوّن إضافي مهم لتطبيقات الويب .NET
تتعامل المؤسسات الحديثة مع كل مستند على أنه احتمال لتسرب البيانات. عندما تقوم بتضمين عارض يعتمد على ActiveX أو Flash أو عميل أصلي، فإنك تتورط في ثلاث مخاطر:
| المخاطر | التأثير على تطبيق .NET الخاص بك | كيف يزيل Doconut App هذه المشكلة |
|---|---|---|
| اعتماد المكوّن الإضافي | يجب على المستخدمين تثبيت أو تمكين مكوّن إضافي للمتصفح، مما يؤدي إلى تذاكر دعم ومشكلات امتثال. | Doconut يعمل بالكامل في HTML5/Canvas، ولا يتطلب أي مكوّن إضافي. |
| نقل غير مشفر | تنتقل الملفات عبر HTTP أو تُخزن كنص عادي، مما ينتهك GDPR أو HIPAA أو السياسات الداخلية. | جميع التحميلات تتم عبر SSL وتُخزن باستخدام تشفير AES‑256. |
| دورة حياة غير مُتحكم فيها | قد تبقى الملفات على الخادم، مما يزيد من سطح الاختراق. | Doconut يحذف الملفات تلقائيًا بعد العرض، مما يضمن نافذة احتفاظ قصيرة. |
نظرًا لأن العارض يُقدَّم كمكوّن JavaScript يتواصل مع خدمة العرض الآمنة الخاصة بـ Doconut، فإنك تحافظ على نظافة مجموعة .NET—بدون مكتبات أصلية إضافية، بدون ثنائيات من طرف ثالث، وبدون تدقيقات امتثال إضافية.
2. إعداد مشروع .NET الخاص بك – الإعداد الأدنى لـ ASP.NET Core و MVC و WebForms
بغض النظر عما إذا كنت تستخدم ASP.NET Core أو MVC 5 أو WebForms، فإن خطوات الإعداد متطابقة:
-
إضافة حزمة سكريبت Doconut
Doconut يستضيف سكريبت عارض خفيف الوزن على شبكة CDN الخاصة به. أضف السطر التالي إلى صفحة التخطيط الخاصة بك (مثل_Layout.cshtmlأوSite.Master):<script src="https://doconut.app/viewer.min.js"></script> -
إنشاء عنصر نائب
العارض يحقن لوحة رسم (canvas) داخل أي<div>تحدده. مثال لـ Razor:<div id="docViewer" style="width:100%; height:800px;"></div>بالنسبة إلى WebForms، ضع
<asp:Panel>معrunat="server"وامنحهID="docViewer". -
الإشارة إلى ملف CSS الخاص بـ Doconut (اختياري)
إذا كنت تريد شريط الأدوات والموضوع الافتراضي، أدرج ملف CSS:<link rel="stylesheet" href="https://doconut.app/viewer.min.css" />
هذا كل ما تحتاجه من أصول ثابتة. باقي العمل يتم في الكود على جانب الخادم (التحميل، التشفير، توليد الرموز) وسكريبت تهيئة صغير على جانب العميل.
3. بناء نقطة تحميل آمنة – AES‑256، SSL، والحذف التلقائي
العارض لا يصل إلى الملفات مباشرة على نظام الملفات الخاص بك. بدلاً من ذلك، تقوم بتحميل المستند إلى موقع تخزين مؤقت مشفر يقرأه Doconut عند الطلب. فيما يلي وصف عالي المستوى للخطوات المطلوبة لـ ASP.NET Core؛ نفس الفكرة تنطبق على MVC و WebForms.
سير العمل على الخادم
- قبول الملف المرفوع – استخدم الكائن القياسي
IFormFile(أوHttpPostedFileفي WebForms) لاستلام المستند من العميل. - تشفير الملف باستخدام AES‑256 – قبل حفظ الدفق، قم بتشفيره باستخدام مكتبة موثوقة مثل
System.Security.Cryptography.Aes. خزن الكتلة المشفرة في موقع آمن (مثل Azure Blob Storage مع تمكين التشفير من جانب الخادم، أو حاوية S3 مع SSE‑AES256). - إنشاء عنوان URL موقع قصير العمر – أنشئ عنوان URL صالح لبضع دقائق (مثلاً 5 دقائق). يجب أن يكون العنوان HTTPS ويحتوي على رمز تشفيري يمكن لـ Doconut التحقق منه. معظم مزودي التخزين السحابي يقدمون ميزة “pre‑signed URL” التي تلبي هذا الاحتياج.
- إرجاع عنوان URL الموقع إلى العميل – أرسل استجابة JSON تحتوي على العنوان. سيقوم العميل بتمرير هذا العنوان إلى عارض Doconut.
- جدولة الحذف التلقائي – بعد انتهاء صلاحية عنوان URL الموقع، تقوم وظيفة خلفية (Hangfire، Azure Functions، إلخ) بحذف الكتلة المشفرة، مما يضمن عدم بقاء الملف على الخادم.
ما يعادل MVC / WebForms
- MVC – ضع نفس المنطق داخل إجراء تحكم عادي وأرجع
JsonResult. - WebForms – نفّذ معالج
.ashxأو طريقة صفحة تتبع نفس الخطوات: استقبلRequest.Files[0]، شفر، أنشئ عنوان URL موقع، واكتب استجابة JSON.
الفرق الوحيد هو صيغة التوجيه؛ يبقى سير عمل الأمان متطابقًا.
4. عرض عارض Doconut – من URL إلى لوحة رسم داخل المتصفح
بمجرد أن يتلقى العميل عنوان URL الموقع الموقّع، يمكن تشغيل العارض باستدعاء JavaScript واحد. يتولى SDK الخاص بـ Doconut التعامل مع البث، والعرض، وتفاعلات الواجهة.
<script>
// Assume `response.viewerUrl` contains the signed URL returned from the upload endpoint
function launchViewer(viewerUrl) {
// Initialise the Doconut viewer. The global object provided by the script is `DoconutViewer`.
DoconutViewer.init({
containerId: "docViewer", // The <div> we placed earlier
fileUrl: viewerUrl, // Signed, HTTPS URL to the encrypted file
toolbar: true, // Show the built‑in toolbar
theme: "light" // Optional visual theme
});
}
// Example: after a successful upload
fetch("/api/document/upload", {
method: "POST",
body: myFormData,
credentials: "include"
})
.then(r => r.json())
.then(data => launchViewer(data.viewerUrl));
</script>
لماذا هذا يعمل مع كل نكهة .NET
- ASP.NET Core Razor – يبقى السكريبت في نفس العرض الذي يستضيف نموذج التحميل، لذا يكون التدفق سلسًا.
- MVC – استخدم
@section Scriptsلإدراج المقتطف نفسه؛ يعيد المتحكم JSON يمكن لـ$.ajaxفي MVC استهلاكه. - WebForms – سجّل السكريبت باستخدام
ClientScript.RegisterStartupScriptبعد إكمال التحميل، ثم استدعِlaunchViewerبنفس الطريقة.
نظرًا لأن Doconut يبث المستند مباشرة من عنوان URL الموقع الموقّع، لا يتعامل الخادم مع الملف مرة أخرى بعد خطوة التحميل. العارض يعرض PDFs وملفات Word ورسومات CAD وجميع التنسيقات الأخرى المذكورة في مواصفات المنتج—بدون أي تحويل على جانب الخادم.
5. تخصيص العارض ليتناسب مع علامتك التجارية – ضبط عارض الملفات عبر الإنترنت
غالبًا ما تحتاج الشركات إلى أن يبدو العارض كجزء أصلي من بوابتها. تتيح لك واجهة Doconut App قابلة للتخصيص بالكامل:
| التخصيص | كيفية التطبيق في .NET |
|---|---|
| تخطيط شريط الأدوات | مرّر toolbar: false وابنِ أزرارك الخاصة التي تستدعي واجهة برمجة تطبيقات JavaScript للعارض (مثل zoomIn(), print()). |
| نظام الألوان | عيّن theme: "dark" أو قدّم ملف CSS مخصص يتجاوز الفئات الافتراضية. |
| اللغة وإمكانية الوصول | Doconut يحترم الخاصية lang على الحاوية؛ يمكنك أيضًا حقن تسميات ARIA عبر خيار accessibility. |
| نقاط الربط الحدثية | ردود النداء مثل onPageChange و onError و onDownload تتيح لك تسجيل مقاييس الاستخدام في خط أنابيب التتبع الحالي لديك. |
جميع هذه الخطاطيف تُضبط في نفس كائن JavaScript المعروض في القسم السابق. وبما أن العارض يعمل بالكامل على العميل، لا يوجد حمولة خادم إضافية—يبقى الواجهة الخلفية لـ .NET مركزة على المصادقة، والتشفير، ومنطق الأعمال.
6. الأداء وقابلية التوسع – حافظ على تجربة سريعة
إدماج عارض في بوابة ذات حركة مرور عالية يثير مخاوف عملية: وقت التحميل والعرض المتزامن. يعالج Doconut App كلا الأمرين مباشرة، لكن يمكنك تعزيز الأداء ببعض الحيل الخاصة بـ .NET.
| القلق | ميزة Doconut المدمجة | نصيحة إضافية لـ .NET |
|---|---|---|
| تحميل أولي | سكريبت العارض لا يتجاوز ~150 KB بعد الضغط. | فعّل ضغط الملفات الثابتة (app.UseResponseCompression()) والتخزين المؤقت (Cache‑Control: public, max‑age=31536000). |
| بث الملفات | Doconut يبث الصفحات المطلوبة فقط باستخدام طلبات نطاق HTTP. | خزن الكتل المشفرة في CDN إقليمي (Azure Front Door، Amazon CloudFront) لتقليل الكمون. |
| المستخدمون المتزامنون | العرض يتم على العميل؛ الخادم يقدم الملف المشفر مرة واحدة لكل عرض. | حدّد معدل طلبات نقطة التحميل باستخدام IApplicationRateLimiter لحماية النظام من الارتفاعات المفاجئة. |
| استهلاك الذاكرة | لا توجد مكتبات تحويل PDF على الخادم، لذا يبقى عملية ASP.NET خفيفة. | شغّل خدمة التحميل في ميكرو‑خدمة منفصلة إذا كان لديك بالفعل طابور وظائف خلفية ثقيل. |
باتباع هذه الإرشادات، يمكنك دعم آلاف المشاهدين المتزامنين دون الحاجة إلى توسيع طبقة الويب .NET إلى ما هو أبعد مما لديك بالفعل.
النقاط الرئيسية
- يوفر Doconut App عارضًا بدون مكوّن إضافي، آمنًا 100 % يعمل مع ASP.NET Core و MVC و WebForms.
- التحميلات SSL‑only، مخزنة بـ تشفير AES‑256، وتُحذف تلقائيًا بعد انتهاء صلاحية عنوان URL الموقع الموقّع.
- يتطلب التكامل فقط سكريبت CDN، وعنصر
<div>حاوي، ونقطة نهاية خادم صغيرة تُعيد عنوان URL موقع موقّع. - يدعم العارض PDF و Office و CAD وأكثر من 50 تنسيق صورة—بدون حاجة إلى تحويل على الخادم.
- يمكن تخصيص الواجهة كليًا لتتناسب مع العلامة التجارية للمؤسسة، ويقدم العارض أدوات تكبير، قياس، وطبقات مدمجة لملفات CAD.
- يتم التعامل مع الأداء على جانب العميل؛ يحتاج مطورو .NET فقط إلى ضمان ضغط الملفات الثابتة وتفعيل التخزين المؤقت عبر CDN إذا لزم الأمر.
- يتكامل سير العمل بالكامل—من التحميل الآمن إلى العرض داخل المتصفح—بسلاسة مع أنظمة المصادقة والتفويض الحالية في .NET.
أسئلة شائعة
س1: هل أحتاج إلى تثبيت أي حزم NuGet لاستخدام Doconut؟
ج: لا. يُقدَّم العارض كحزمة JavaScript على جانب العميل من CDN الخاص بـ Doconut. يحتاج الخادم فقط إلى الوسيط المعتاد في ASP.NET Core لتحميل الملفات وتشفيرها، وهو ما لديك على الأرجح بالفعل.
س2: كيف يضمن Doconut حذف الملف بعد العرض؟
ج: يولد Doconut عنوان URL موقع قصير العمر ينتهي صلاحيته بعد فترة قابلة للضبط (عادةً خمس دقائق). بعد انتهاء الصلاحية، تقوم أنت (أو مهمة تنظيف خلفية) بحذف الكتلة المشفرة. هذا يضمن عدم بقاء المستند لفترة أطول من الضروري، مما يلبي سياسات الاحتفاظ الصارمة.
س3: هل يمكنني استخدام العارض للطباعة أو تصدير المستند؟
ج: نعم. يتضمن شريط الأدوات المدمج في Doconut خيارات للطباعة والتصدير تحافظ على الجودة الأصلية وتنسيق الملف المصدر.
هل أنت مستعد لتضمين عارض مستندات آمن بدون مكوّن إضافي في تطبيق .NET الخاص بك؟ ابدأ مع Doconut App اليوم وقدم PDF و Office و CAD وعشرات الصيغ الأخرى بأمان وفورية.