2011-01-20 4 views
0

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

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

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

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

ответ

0

Новый шаблон в VS 2010 называется WCF Приложение REST Service. Он создает веб-приложение с одной предопределенной службой REST, которая открывается ServiceRoute. Этот тип приложения зависит от хоста IIS (или хостинга веб-сервера в целом) с включенным AspNetCompatibility. Он не может быть напрямую преобразован в хостинг в службе Windows. Некоторые функции WCF REST (WebRouting, профили выходных chache) зависят от 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. Он также может использоваться в этом случае, но это необязательно.