IOS 6 (iPhone / iPad) Image Upload "طلب دفق الجسم استنفدت" مع مصادقة NTLM / Windows

StackOverflow https://stackoverflow.com//questions/12694310

سؤال

أنا أعمل على محاولة الحصول على iOS 6 لاستخدام المشاركات XMLHTPRequest لتحميل الصور.يعمل هذا على سطح المكتب ومتصفحات ويب أندرويد، ولكن مع iOS 6 أحصل على خطأ في الصفحة التي يتم إرسالها إلى: "طلب دفق الجسم استنفدت".(باستخدام محاكي iOS مع مفتش Safari Web).

هنا هو الرمز الأساسي للصفحة:

giveacodicetagpre.

عند القيام بذلك على أي متصفح آخر، يعود المعالج بشكل صحيح وتحميل الملف.ومع ذلك، مع iOS صفحة ASHX لديها الخطأ "طلب دفق الجسم استنفدت".

هنا هي لقطة شاشة للمفتش:

طلب دفق الجسم استنفدت

أي أفكار؟

تحديث: يحدث هذه المشكلة فقط عند تمكين مصادقة NTLM / Windows للتطبيق في IIS.مع أشكال أو مصادقة مجهولة، يعمل التحميل بشكل جيد.

شكرا،

جون

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

المحلول

في iOS 6، يرسل Safari الملف مع المشاركة الأولي، بما في ذلك الملف.وهذا يعني أن تيار الملف في النهاية، أو "استنفدت".

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

بقدر ما أعرف، لا توجد طريقة جيدة بشكل خاص حولها.أنا أغير تطبيق My Mobile، بحيث يستخدم مصادقة النموذج.أقوم بتوجيه تطبيق الجوال لتطبيق تسجيل الدخول منفصل على نفس الخادم، والذي تم تعيينه لاستخدام مصادقة Windows.يمكن إعادة توجيه تطبيق تسجيل الدخول بعد ذلك إلى التطبيق الرئيسي مع ملف تعريف ارتباط مصادقة نموذج، وكل شيء على ما يرام مرة أخرى.

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

الرمز في تطبيق تسجيل الدخول بسيط مثل

giveacodicetagpre.

نصائح أخرى

قمت بحل المشكلة من خلال عدم إعداد رأس المصادقة HTTP المعرفة ذاتيا على نظام التشغيل iOS 7 و iOS 8. (في البداية، تستخدم خدمةنا القيمة المعرفة ذاتيا لرأس المصادقة).وبعد التحدي الذي يجري التعامل معه من قبل المندوب، سيكون الطلب "المصادقة: NTLMXXX تلقائيا" تلقائيا.ووضع ونشر يعمل مرة أخرى.

هذا الخطأ يأتي على نظام التشغيل iOS ولكن يمكنك استخدام نهج مختلف مثل تغيير خط التعليمات البرمجية الخاص بك في FormData حيث تقوم بإلغاء الملف

giveacodicetagpre.

إلى الأسطر أدناه لا يلغي التحكم في الملفات بشكل أساسي ولكن استخدام بيانات الصورة Base64

giveacodicetagpre.

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