سؤال

عند إجراء طلب ويب بواسطة Visual Studio إلى TFS، سيظهر FIDLLER خطأ 401 غير مصرح به. سيقوم Visual Studio بعد ذلك بحدوث ذلك مرة أخرى مع إذن مناسب للتفاوض الرأسية في مكانه الذي سيستجيب TFS مع البيانات المناسبة ورمز الحالة 200.

كيف يمكنني الحصول على الرؤوس الصحيحة التي سيتم إرسالها لأول مرة لوقف 401؟

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

المحلول

هذه هي الطريقة التي يعمل بها عملية المصادقة المتكاملة ل Windows (NTLM). NTLM هي آلية المصادقة المستندة إلى اتصال وتتضمن فعلا 3 مكالمات لإنشاء الجلسة المصادقة.

ثم يذهب API TFS إلى أطوال خارجية عادية للتأكد من أن هذا المصافحة تتم في الطريقة الأكثر كفاءة ممكنة. سوف يحتفظ بالاتصال المصادق عليه مفتوح لفترة من الوقت لتجنب هذه الهزة اليدوية حيثما أمكن ذلك. ستقوم أيضا بالصادقة الأولية باستخدام حمولة HTTP مع الحد الأدنى من المحتوى ثم إرسال الرسالة الحقيقية إذا كانت الرسالة التي سترسلها ترسلها على طول معين. إنه بمجموعة من الحيل الأخرى أيضا لتحسين الاتصال TFS.

في الأساس، أود فقط أن أترك الأمر بمفرده لأنه يعمل بشكل جيد.

نصائح أخرى

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

هذا حسب التصميم وسبب وجيه للغاية.

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

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