كيفية تعطيل مخططات المصادقة لخدمات بيانات WCF

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

  •  23-09-2019
  •  | 
  •  

سؤال

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

مخططات المصادقة المحددة IIS "أساسية ، مجهولة" ، لكن الربط يدعم فقط مواصفات مخطط المصادقة الواحد بالضبط. مخططات المصادقة صالحة هي Digest أو Teensue على NTLM أو Basic أو Anonymous. قم بتغيير إعدادات IIS بحيث يتم استخدام مخطط مصادقة واحد فقط.

يبدو أن خدمات بيانات WCF (WCF بشكل عام؟) لا يمكنها التعامل مع أكثر من مرة واحدة من مخطط المصادقة.

حسنًا ، أنا أدرك أنه يمكنني تعطيل مخطط المصادقة All-ولكن واحد على تطبيق الويب عبر لوحة التحكم IIS .... عبر طلب دعم !!

هل هناك طريقة لتحديد مخطط مصادقة واحد على مستوى كل خدمة في الويب.

اعتقدت أن هذا قد يكون مستقيمًا إلى الأمام مثل إجراء تغيير عليه <system.serviceModel> لكن ... اتضح ذلك لا تقوم خدمات بيانات WCF بتكوين نفسها في تكوين الويب. إذا نظرت إلى DataService<> الفصل لا ينفذ [ServiceContract] وبالتالي لا يمكنك الرجوع إليها في <service><endpoint>... والتي أفترض أنها ستكون ضرورية لتغيير تكوينها عبر XML.

PS مضيفنا يستخدم II6 ، ولكن كلا الحلتين لـ IIS6 و IIS7 موضع تقدير.

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

المحلول

أولاً ، من الممكن تكوين خدمات البيانات على ملف تكوين الويب. يسمى العقد المستخدم من قبل DataService system.data.services.irequesthandler.

إليك ما يمكنك القيام به في ملف تكوين الويب لتكوينه.

على علامة الخدمة الخاصة بنظام.

<service name="{you service type name including the namespace i.e. myapplication.myservice}">
    <endpoint address="" binding="webHttpBinding" contract="System.Data.Services.IRequestHandler">
    </endpoint>
</service>

بمجرد الحصول على ذلك ، يمكنك البدء في تكوين جميع أخلاق الأشياء باستخدام عناصر تكوين WCF القياسية.

ثانياً ، لتمكين أو تعطيل طرق المصادقة لخدمة معينة في IIS ، يمكنك القيام بما يلي:

في Snap In for IIS ، انقر بزر الماوس الأيمن على ملف الخدمة الخاص بك (أي you yourservice.svc) وانقر فوق الخصائص. بمجرد الانتقال إلى خصائص File Security Tab واختر زر التحرير في مربع مجموعة التحكم في المصادقة والوصول. بعد ذلك يشبه إنشاء أمان الدليل في IIS.

كاقتراح أخيرة وفقًا لأي مشكلة في التصوير ، من المهم تمكين Disgnostics WCF أثناء تكوينه باستخدام تكوين XML ، والكتاب في WCF ، يعد تسجيل خدمة البيانات وفقًا لـ WCF غنيًا ومفيدًا للغاية.

يمكنك معرفة المزيد عن ذلك إدارة WCF والتشخيصات

آمل أن أتمكن من مساعدتك في مشكلتك

اسمحوا لي أن أعرف كيف تسير الأمور.

يعتبر

دانييل بورتيلا

تحديث:

مرحبا شنايدر

لتحديد مخطط المصادقة في XML قراءة أدناه

لمصادقة Windows كمثال

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding name="MyBindingName" >
          <security mode="Transport">
            <transport clientCredentialType="Windows" />
          </security>
        </binding>
      </webHttpBinding>
    </bindings>
    <services>
      <service name="{you service type name including the namespace i.e. myapplication.myservice}">
        <endpoint address="" binding="webHttpBinding" bindingConfiguration="MyBindingName" contract="System.Data.Services.IRequestHandler">
        </endpoint>
      </service>
    </services>
  </system.serviceModel>
</configuration>

لأنواع أخرى من المصادقة ، يرجى التحقق من مكتبة MSDN للحصول على أمثلة

سيناريوهات شائعة للأمن

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