WCF REST: (шаблон C # 4.0) Защита с помощью аутентификации Windows и хостинга в службе Windows? - PullRequest
0 голосов
/ 20 января 2011

Я пытаюсь выяснить, как защитить свои веб-службы с помощью аутентификации Windows (Active Directory). Я использую «НОВЫЕ» шаблоны, предоставленные для c # 4.0 (против 2010), и в настоящее время имею это, но мне нужно разместить его в службе Windows - это возможно?

Я думал, что WCF Rest clientCredentialType = "Windows" на самом деле использует IIS для обеспечения этого типа безопасности?

Я искал в Интернете и нашел много примеров с C # 3.5, но ни один для нового шаблона, предоставленного по сравнению с 2010 C # 4.0, для создания службы отдыха. W

<standardEndpoints>
  <webHttpEndpoint>
    <standardEndpoint name="" helpEnabled="true" 
                      automaticFormatSelectionEnabled="true">
      <security mode="">
        <transport clientCredentialType = "Windows" />
      </security>

1 Ответ

0 голосов
/ 20 января 2011

Новый шаблон в VS 2010 называется приложением службы WCF REST.Он создает веб-приложение с одной предопределенной службой REST, которая предоставляется ServiceRoute.Этот тип приложения зависит от хостинга IIS (или хостинга веб-сервера в целом) с включенным AspNetCompatibility.Он не может быть напрямую преобразован в хостинг в службе Windows.Некоторые функции WCF REST (веб-маршрутизация, профили выходной последовательности) зависят от AspNetCompatibility, который обычно недоступен за пределами веб-сервера.

Но если вам не нужны эти функции, вы можете легко разместить службы WCF REST вСлужба Windows.Вы можете начать новый проект как библиотеку служб WCF, а второй - как службу Windows для размещения служб из библиотеки.

Вам не нужен новый шаблон из .NET 4.0 для определения конечной точки WebHttp с безопасностью Windows.Этого достаточно:

<bindings>
  <webHttpBinding>
    <binding>
      <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Windows" />
      </security>
    </binding>
  </webHttpBinding>
</bindings>

Опуская name в элементе binding, вы определяете конфигурацию по умолчанию webHttpBinding.Каждый раз, когда вы определяете конечную точку с помощью WebHttpBinding, эта конфигурация будет использоваться.StandardEnpoint - это новая функция WCF 4.0.В этом случае его также можно использовать, но в этом нет необходимости.

...