سؤال

لدي صفحة أريد فيها الحفاظ على قيمة الكائن بين عمليات النشر.أفكر في طريقتين للحفاظ على قيمة الأشياء

  1. قم بتخزين القيمة في View Sate
  2. قم بتخزين القيمة في الحقل المخفي

وهو الخيار الأفضل للاستخدام بناءً على الأداء

هل كانت مفيدة؟

المحلول

حالة العرض إذا كنت لا بحاجة إلى الرجوع إليه في البرنامج النصي من جانب العميل.حقل مخفي إذا قمت بذلك.

ضع في اعتبارك أيضًا أنه إذا كانت البيانات حساسة، فسيتم تشفير حالة العرض افتراضيًا، في حين أن الحقل المخفي، افتراضيًا، يخزنها كنص عادي مرئي لأي شخص يعرف كيفية عرض المصدر.

يحرر

وفقًا لملاحظة @Andrew Hare حول إجابته، أقوم بتحرير هذا.إنه تمييز مهم بما فيه الكفاية لملاحظة.أكره أن يعتقد شخص ما أنه "آمن" باستخدام Viewstate بناءً على إشرافي.

لا يتم تشفير حالة العرض افتراضيًا، بل يتم تخزينها بتشفير Base-64.يمكن فك تشفيرها بسهولة إلى حد ما، لذا فإن استخدام حالة العرض لأنها مشفرة افتراضيًا غير صالح.إنه أفضل من النص العادي، ولكن ليس لأي شخص لديه القدرة على "فك تشفير حالة العرض" أو "فك تشفير حالة العرض" على Google.

لذلك لا تعتمد على Viewstate لحماية معلوماتك المخفية في التعليمات البرمجية من جانب العميل.

مقالة هنا يحكي كيفية تشفيره بشكل صحيح.(ولكنه يحذر أيضًا من مشكلات الأداء).

نصائح أخرى

لا يهم حقًا نظرًا لأنه يتم تخزين ViewState نفسه في مدخلات مخفية.استخدم أيهما أسهل بالنسبة لك.إذا كان الأمر متروكًا لي فسأختار ViewState نظرًا لأن وقت تشغيل ASP.NET سيتعامل مع التسلسل وإلغاء تسلسل الكائنات الخاصة بك نيابةً عنك.

يعجبني ViewState - فمن الصعب اختراقه - يمكن لأي شخص سيئ إرسال صفحتك إليك بسهولة مع وجود بيانات سيئة في حقولك المخفية

تريد تخزينه في حالة العرض.يمكن تحديث الحقول المخفية على المتصفح، حيث أنها مخصصة لتخزين المعلومات التي يمكن معالجتها من جانب العميل.سيتم التحقق من صحة حالة العرض بواسطة asp.net ضد التلاعب، حيث سيتعين عليك القيام بذلك بالحقل المخفي بنفسك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top