Как отключить схемы аутентификации для WCF Data Services

Когда я развернул свои службы данных WCF на производственном хостинге, я начал получать следующую ошибку (или аналогичную в зависимости от того, какие схемы аутентификации активны):

В службах IIS указаны схемы проверки подлинности «Базовая, анонимная», но привязка поддерживает указание только одной схемы проверки подлинности. Допустимые схемы проверки подлинности: дайджест, согласование, NTLM, базовая или анонимная. Измените настройки IIS так, чтобы использовалась только одна схема аутентификации.

Очевидно, службы данных WCF (WCF в целом?) Не могут справиться с наличием более одной активной схемы проверки подлинности.

Хорошо, я знаю, что могу отключить схему аутентификации «все, кроме одного» в веб-приложении через панель управления IIS .... через запрос в службу поддержки !!

Есть ли способ указать единую схему аутентификации на уровне службы в файле web.config?

Я подумал, что это может быть так же просто, как изменение <system.serviceModel>, но ... оказалось, что службы данных WCF не настраиваются в веб-конфигурации. Если вы посмотрите на класс DataService<>, он не реализует [ServiceContract], поэтому вы не можете ссылаться на него в _4 _..., который, как я полагаю, может потребоваться для изменения его конфигурации через XML.

P.S. Наш хост использует II6, но оба решения для IIS6 и IIS7 оценены.


person Jack Ukleja    schedule 30.03.2010    source источник


Ответы (1)


Во-первых, можно настроить службы данных в файле веб-конфигурации. Контракт, используемый DataService, называется System.Data.Services.IRequestHandler.

Вот что вы можете сделать в файле веб-конфигурации, чтобы настроить его.

В служебном теге элемента system.servicemodel добавьте

<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, вы можете сделать следующее:

В оснастке IIS щелкните правой кнопкой мыши файл службы (например, yourservice.svc) и выберите «Свойства». В свойствах перейдите на вкладку «Безопасность файлов» и нажмите кнопку «Изменить» в поле группы проверки подлинности и контроля доступа. после этого это похоже на настройку безопасности каталогов в IIS.

В качестве последнего предложения по устранению любых неисправностей важно включить дизгностику 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.

Общие сценарии обеспечения безопасности

person dmportella    schedule 30.03.2010
comment
благодаря. конфигурация конечной точки полезна. теперь у меня есть это, я буду искать способ указать схему аутентификации в xml ... - person Jack Ukleja; 30.03.2010
comment
добавьте обновление выше, надеюсь, ти объяснит, как настроить аутентификацию для службы - person dmportella; 31.03.2010
comment
Если бы я мог, я бы наградил тебя ...! Огромное спасибо! - person Rashack; 15.03.2013
comment
спасибо, Рашак, просто проголосовал, ответы достаточно хороши, чтобы убедиться, что другие увидят, что это было полезно, и вселить уверенность в сообществе, что проблема была решена - person dmportella; 15.03.2013