سؤال

حسنًا، هذا ما أفعله.أقوم بتقديم طلب إلى الخادم لسحب ملف.أفعل ذلك عن طريق إجراء طلب WebRequest إلى موقع الويب والحصول على الرد تمامًا كما تفعل عادةً، على الرغم من أنني تلقيت خطأ 403 يفيد بأنني لا أملك الأذونات.

تكمن المشكلة في أنه عندما أقوم بتوصيل عنوان URL في Google Chrome، تتم إعادة توجيهي ويتم تنزيل الملف الذي طلبته.لقد جربت عنوان URL على متصفحات أخرى وحصلت على الخطأ 403.

ما الذي يفعله Google Chrome ليسمح له بتجاوز الخطأ 403؟لقد حاولت استخدام وكيل مستخدم Google Chrome، لكن هذا لا يساعدني.

يساعد

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

المحلول 3

شكرا للمساعدة.لم تساعدني أي من إجاباتك بشكل مباشر، ولكن شكرًا على المحاولة.

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

في الأساس، لم يكن لدي إمكانية الوصول إلى أوامر خدمة الويب، لذا كل ما يمكنني فعله هو استخدام عناوين URL الأساسية http للحصول على استجابة محددة مسبقًا.لم يكن عنوان URL للملفات الذي استخدمته للحصول على ملف الخادم فريدًا، بل كان ديناميكيًا اعتمادًا على متصفح الويب/الجلسة.كنت أستخدم كائن HTTPRequest للحصول على ملف HTML حتى أتمكن من تحليله.باستخدام ملف html قمت بتحليله لمعرفة المعرف الديناميكي للملف (اعتقدت أنه فريد).ثم سأرفق ذلك بنهاية عنوان URL.في Chrome، ستتم إعادة توجيهي وإظهار مطالبة التنزيل.كانت المشكلة أنني كنت بحاجة إلى كائن متصفح الويب عندما أردت سحب الملف.مع العلم بذلك، استخدمت كائن متصفح الويب للحصول على معرف الملف، ثم استخدمت نفس كائن متصفح الويب (نفس الجلسات تقنيًا وفقًا لخادم الويب) لسحب الملف.

انها معقدة نوعا ما.في الأساس، برنامجي عبارة عن اختراق صغير يوفر وظائف يحاول الخادم حظرها.

آمل أن يكون هذا قد ساعدكم يا رفاق في أي من مشاريعكم المستقبلية.

نصائح أخرى

من المحتمل أن يتعرف خادم الويب على وكيل مستخدم Chrome ويسمح بتنزيل الملف به ، ولكن ليس من قبل وكلاء المستخدمين الآخرين. قم بإعداد WebRequest الخاص بك لاستخدام سلاسل وكيل المستخدم نفسها كأسلاك وإعدادات Google Chrome - افتراضيًا قد تستخدم إعدادات IE.

تحرير: هنا تعليمات من MSDN حول كيفية تعيين سلسلة وكيل مستخدم WebRequest. لمعرفة وكيل المستخدم لأي متصفح ، أدخل هذا في شريط العناوين:

javascript:prompt('my user agent string is', navigator.userAgent);

ال 403 رمز الحالة يشير إلى أن المورد الذي تحاول الوصول إليه محظور. كما في ، لا تسأل لأنك لا تحصل عليه. هذا يختلف عن رمز 401 من حيث يتم تقديم تحدي التفويض قبل أن يؤكد الخادم تسليم المورد.

على الرغم من أن هذا قد يكون تكوينًا برمجيًا ، فقد يتم شرح ذلك أيضًا عن طريق قيود الوصول على المورد كما تم تكوينه من خلال خادم الويب.

هل يمكنك التحقق من أن المورد الذي تم تنزيله في Google Chrome هو المورد المتوقع الذي تحاول الوصول إليه؟

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