2017-05-16 3 views
0

J'ai un service WCF qui interagit avec certaines applications de formulaire à l'aide de NetTcpBinding afin d'utiliser les rappels. Cela fonctionne très bien.WCF: le serveur rejette les informations d'identification lors de l'appel à partir de WindowsService

Maintenant, je voudrais utiliser ce même service WCF à partir d'un WindowsService s'exécutant sous le compte LocalService. Le but de ceci est d'entrer certaines données qui seront montrées dans les formulaires. Je ne ai besoin d'utiliser l'une des fonctions, permet de l'appeler « PushInfo(data as MyData) »

Pour autant que je sais que je ne peux pas le faire en utilisant le compte LocalService, donc je mis en place ceci afin d'utiliser certaines informations d'identification AD:

myclientWCF = New ServiceReference.GatewayClient(context) 
myclientWCF.ClientCredentials.Windows.ClientCredential.UserName = "John" 
myclientWCF.ClientCredentials.Windows.ClientCredential.Domain = "EvilCorpDomain" 
myclientWCF.ClientCredentials.Windows.ClientCredential.Password = "spaceballs" 
myclientWCF.PushInfo(myData) 

Si je fais cela, l'appel est rejeté par le serveur en raison d'informations d'identification non valides.

Qu'est-ce qui me manque?

J'ai lu que je devrais utiliser:

myclientWCF.ClientCredentials.Windows.ClientCredential = New NetworkCredential("John", "spaceballs", "EvilCorpDomain") 

mais j'obtenir le même résultat, en fait, je ne vois pas comment cela est différent de mon approche.

Répondre

0

essayer d'ajouter myclientWCF.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonate;

+0

Merci. J'ai essayé mais malheureusement ça n'a pas marché. Je suppose qu'il me manque quelque chose d'autre – RRhoads

0

Eh bien, on dirait que je manque cette déclaration:

myclientWCF.ClientCredentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials 

bien que je ne sais pas comment/pourquoi cela fonctionne. Je vais regarder dans ça.

J'ai travaillé autour de cela toute la journée et je l'ai fait fonctionner 10 minutes après que j'ai posté la question. Est-ce une bonne pratique de laisser ici à la fois question et réponse ou devrais-je supprimer le poste?

+0

Laissez-le, ça pourrait aider quelqu'un d'autre. Mais une explication de pourquoi cela a fonctionné serait bien aussi :) – Popo