سؤال

لدي موقع ويب يعمل بشكل صحيح ضمن IIS 6.0:يقوم بتوثيق المستخدمين باستخدام بيانات اعتماد Windows، ثم عند التحدث إلى الخدمة التي تصل إلى قاعدة البيانات، فإنه يقوم بتمرير بيانات الاعتماد.

في IIS 7.0، لا تمرر إعدادات التكوين نفسها بيانات الاعتماد، ويتم ضرب قاعدة البيانات باستخدام NT AUTHORITY\ANONYMOUS.

هل هناك شيء أفتقده؟لقد قمت بإيقاف تشغيل الوصول المجهول في موقع ويب IIS 7.0 الخاص بي، لكن لا يمكنني تشغيل هذا الشيء.

هذه هي الإعدادات التي أستخدمها في كل من IIS 6.0 و7.0:

<authentication mode="Windows">
<identity impersonate="true">

ما الذي تغير من 6.0 إلى 7.0؟

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

المحلول

لقد حدثت تغييرات بين IIS7 وIIS6.0.لقد وجدت لك مشاركة مدونة واحدة قد تساعدك بالفعل (انقر هنا لرؤيتها).

هل تقوم بتشغيل تطبيقك في الوضع المتكامل أم في الوضع الكلاسيكي؟مما رأيته، فإن وضع سمة انتحال الشخصية على القيمة true يجب أن يعرض لك خطأ 500 مع رسالة الخطأ التالية:

خطأ في الخادم الداخلي.هذا هو خطأ HTTP 500.19:لا يمكن الوصول إلى الصفحة المطلوبة لأن بيانات التكوين ذات الصلة للصفحة غير صالحة.

هنا هو الحل المقترح:

الحل البديل:

1) إذا لم يعتمد تطبيقك على انتحال شخصية المستخدم الطالب في مراحل BeginRequest و Authenticaterequest (المراحل الوحيدة التي لا يمكن فيها انتحال شخصية في الوضع المتكامل) ، فتجاهل هذا الخطأ عن طريق إضافة ما يلي إلى Web.Config:

<validation validateIntegratedModeConfiguration="false"

/>

2) إذا كان تطبيقك يعتمد على الانتحار في BeginRequest و AuthenticatereQuest ، أو أنك لست متأكدًا ، انتقل إلى الوضع الكلاسيكي.

كنت آمل أن يكون ذلك مفيدًا لفهم كيفية عمل IIS 7.0 الآن.

نصائح أخرى

هل تم إعداد خادم IIS الخاص بك ليكون موثوقًا به للتفويض بواسطة SQLServer؟لقد واجهت هذا من قبل مع WebDAV حيث كان علينا أن نجعل الخادم الذي يقوم بتشغيل IIS موثوقًا به من قبل خادم الملفات للمصادقة نيابة عن خادم الملفات.

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

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

@ Esteban - أوضح لي ليست مفيدة جدا في مساعدتك إجابة.

عادةً، إذا كنت تقوم بإجراء مصادقة قفزة مزدوجة مثل هذه، فعادةً ما يتم تضمين Kerberos ما لم تكن المصادقة الأولى أساسية.

سأتحقق من المصادقة على خوادم IIS 6 وأتأكد من أنها هي نفسها على IIS 7.

إذا تم تعيين مربع IIS 6 على Windows Integrated، فأنت بحاجة إلى التحقق من إعدادات kerberos - أسماء أسماء الخدمة (SPN)، والتفويض، وما إلى ذلك.

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