J'ai un service WCF utilisant BasicHttpBinding avec l'authentification Windows. La plupart des clients sont des comptes de domaine et se connectent au service en utilisant leurs informations d'identification par défaut.Comment spécifier les informations d'identification Windows dans le fichier de configuration du client WCF
Maintenant, je veux me connecter au service à partir d'un client ASP.NET qui s'exécute sous un compte local. Je veux me connecter au service WCF en utilisant les informations d'identification Windows (domaine \ utilisateur et mot de passe) qui sont disponibles pour l'application ASP.NET.
Je sais que je peux le faire en code en utilisant ClientBase < T> .ClientCredentials.
Existe-t-il un moyen de spécifier les informations d'identification (domaine \ utilisateur et mot de passe) dans le fichier web.config du client afin de ne pas avoir à modifier le code?
EDIT
Si elle ne peut pas être fait dans le fichier de configuration, est-il un moyen d'utiliser System.Net.ICredentials ou System.Net.NetworkCredential comme des titres de compétence pour un service WCF? Le .NET Framework leur fournit une manière homogène de fournir des informations d'identification réseau, mais avec WCF, cela semble avoir été rejeté en faveur d'un nouveau système incompatible basé sur la classe System.ServiceModel.Description.ClientCredentials non liée.
EDIT 2
Accepter la réponse de Marc à la question initiale - il semble qu'il n'y a aucun moyen de le faire dans le fichier de configuration du client :(
Je considéreront cela comme une lacune dans WCF - Je n'accepte pas que Microsoft décourage délibérément de mettre des informations d'identification dans le fichier de configuration - après tout, ils doivent être stockés quelque part, et le cadre comprend des fonctionnalités pour crypter le fichier de configuration.Je suppose que je pourrais créer un BehaviorExtensionElement personnalisé pour cette , mais il devrait être disponible dès la sortie de la boîte
C'est aussi un peu incohérent: l'élément de configuration system.net/mailSettings/smtp/network permet de spécifier les informations d'identification, alors pourquoi pas WCF?
En ce qui concerne la deuxième question sur l'utilisation System.Net.NetworkCredential, il semble de this blog qu'il est possible, au moins lors de l'authentification Windows, avec le code suivant:
factory.Credentials.Windows.ClientCredential =
new System.Net.NetworkCredential(name, password, domain);
« ... dans votre fichier de configuration, dans le texte brut » est généralement pas une bonne chose, mais dans le fichier de configuration crypté est OK. – Joe
@marc_s N'est-il pas encore disponible pour le paramétrage via le fichier de configuration? –
@Johnny_D: non, pas autant que je sache. –