2011-01-20 1 views
0

J'essaie de savoir comment sécuriser mes services Web avec l'authentification Windows (Active Directory). J'utilise les "NOUVEAUX" modèles fournis pour C# 4.0 (vs 2010) et actuellement, j'ai besoin de l'héberger dans un service Windows - est-ce possible?WCF REST: (modèle C# 4.0) Sécurisation avec l'authentification et l'hébergement Windows dans un service Windows?

Je pensais que le WCF Rest clientCredentialType = "Windows" utilise réellement IIS pour fournir ce type de sécurité?

J'ai cherché sur internet et a trouvé de nombreux exemples avec C# 3.5, mais aucun pour le nouveau modèle fourni à vs 2010 C# 4.0 pour créer un repos

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

Répondre

0

Nouveau modèle dans VS 2010 est appelé WCF REST Application de service. Il crée une application Web avec un service REST prédéfini unique qui est exposé par ServiceRoute. Ce type d'application dépend de l'hébergement IIS (ou de l'hébergement du serveur Web en général) avec AspNetCompatibility activé. Il ne peut pas être directement converti en hébergement dans le service Windows. Certaines fonctionnalités WCF REST (WebRouting, Output chache profiles) dépendent de AspNetCompatibility qui n'est normalement pas disponible en dehors du serveur Web.

Mais si vous n'avez pas besoin de ces fonctionnalités, vous pouvez facilement héberger les services WCF REST dans le service Windows. Vous pouvez démarrer un nouveau projet en tant que bibliothèque de service WCF et un second projet en tant que service Windows pour héberger des services à partir de la bibliothèque.

Vous n'avez pas besoin de nouveau modèle de .NET 4.0 pour définir le point de terminaison WebHttp avec la sécurité de Windows. Cela suffit:

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

En omettant name dans l'élément binding vous définissez la configuration par défaut webHttpBinding. Chaque fois que vous définissez le point de terminaison avec WebHttpBinding, cette configuration sera utilisée. StandardEnpoint est une nouvelle fonctionnalité de WCF 4.0. Il peut aussi être utilisé dans ce cas mais ce n'est pas nécessaire.

Questions connexes