2009-11-23 4 views
4

Je suis très novice dans l'utilisation des services WCF. À l'heure actuelle, j'ai un service WCF que j'appelle en utilisant jQuery. Je suis préoccupé par les utilisateurs qui font des appels non autorisés au service. Quel serait le meilleur moyen de sécuriser mon service?Service WCF sécurisé

Répondre

3

Si Ceci est une application de navigateur et vous êtes inquiet pour la sécurité, probablement que vous avez déjà une sorte de mécanisme d'authentification (cookies, sessions, quelque chose). Tous ces éléments sont accessibles depuis les services WCF (je suppose que vous utilisez webHttpBinding ou basicHttpBinding?) Via la propriété WebOperationContext.Current.IncomingRequest. Vous pouvez vérifier/valider un cookie (ou autre chose) à partir de votre code de service, ou écrire un MessageInspector transversal pour appliquer la vérification à toutes les méthodes de votre service. Les services WCF peuvent également être intégrés avec l'authentification ASP.NET traditionnelle (formulaires, etc.) si vous hébergez le service avec le compatibility flag. L'application du navigateur se connecte normalement, et votre service peut consommer les informations d'identification/jetons/quoi que ce soit.

+0

Je pourrais envoyer la valeur ASP.NET_SESSID avec mes requêtes jQuery, mais une fois de l'autre côté, comment pourriez-vous valider une session avec la valeur du cookie? En ce moment j'utilise JSON pour mes réponses et demandes. – Matt

+0

Si vous hébergez votre service WCF avec IIS dans un fichier .svc, le navigateur envoie déjà le cookie de session ASP.NET de toute façon (en supposant que vous en ayez un). Activez simplement le mode de compatibilité ASP.NET et consultez HttpContent.Current.Request.User (ou tout ce que vous voulez) dans votre code de service. – nitzmahone

+0

Désolé, c'est HttpContext. – nitzmahone

0

vous pouvez utiliser un certificat pour signer les messages WCF (il est dans les WCF Paramètres) des deux côtés (client et serveur)

Voici quelques explications détaillées:

Message Security