سؤال

لقد قمت بإنشاء جهاز Routehandler مخصص للصور التي أريدها محمية. يأخذ RouteHandler ببساطة مسارًا جديدًا (الرسومات/{filename}) ويقوم بإجراء بحث عن مسار الملف الحقيقي ، ويقوم بتعيين نوع MIME ، ويخدمه. هذا يعمل بشكل جيد. ((http://www.mikesdotnetting.com/article/126/asp.net-mvc-prevent-emage-leeching-with-a-custom-routehandler)

ما أردت القيام به بعد ذلك هو إجراء فحص داخل معالج مخصص لمتغير الجلسة الذي كنت سأقوم بتعيينه في وقت سابق للتأكد من أن الشخص الذي يحاول عرض الصورة لديه إذن للقيام بذلك.

في الأساس ، سيقومون بتمرير تسجيل الدخول (أدخل رمز) ، والذي سيحدد متغير جلسة سأبحث عنه في HOWNDLERLER المخصص.

مشكلتي هي أنه لا يمكنني الحصول على بيانات الجلسة من داخل RouteHandler المخصصة.

أخيرًا ، سؤالي هو: كيف يمكنني تعيين البيانات في وحدة تحكم وإتاحةها لي من داخل Hounderler مخصص بناءً على طلب لاحق؟

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

المحلول

أولاً ، من requestContext تم نقله إلى طريقة GethTtphandler ، لا يمكنك الوصول إلى الجلسة عبر requestContext.HttpContext.Session؟ لست متأكدًا ، يمكنني أن أرى أن هذا لا يعمل افتراضيًا لأنه في وقت مبكر جدًا من خط الأنابيب.

إذا لم يكن الأمر كذلك ، يمكنك دائمًا نقل المنطق لفحص الجلسة إلى المعالج عن طريق إضافة IrequiressessionState واجهة لمعالجك.

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