2009-06-21 3 views
1

Je suis nouveau au service WCFéchec de connexion service WCF nom d'utilisateur inconnu ou mauvais mot de passe

j'ai le service WCF, où j'utiliser pour faire l'opération de fichier sur un disque partagé. lorsque je tente d'écrire/lire l'emplacement partagé, il me renvoie une exception en disant « échec de connexion nom d'utilisateur inconnu ou mot de passe incorrect »

je peux faire l'opération de fichier dans le code qui fonctionne très bien, le problème est que je l'ai déplacé tous les code au service WCF, maintenant je reçois l'exception ci-dessus.

toute aide serait grandement appréciée

grâce Vinod

+0

quelles fixations utilisez-vous? Quels sont les paramètres de sécurité en vigueur? pouvez-vous nous montrer la configuration du serveur et du client? –

+0

Si ma réponse vous a aidé à ne pas oublier de voter, et de la vérifier comme une "bonne réponse";) –

Répondre

2

Si quand vous dites le service WCF, vous voulez dire un service Windows qui héberge le service WCF. Ensuite, je vérifierais l'identité du service Windows, si le nom et le mot de passe sont écrits correctement.

Si le service WCF est hébergé dans IIS, il pourrait alors être l'identité du pool d'applications ou le compte agissant en tant que compte anonyme IIS.

Dans les deux cas ci-dessus, il pourrait aussi être la façon dont le service WCF est appelée, si vous utilisez l'authentification Windows, assurez-vous que l'identité est correctement réglée.

Sur la base de vos commentaires il semble que ce sont les pouvoirs de l'utilisateur connecté qui tente d'accéder aux fichiers. En même temps, les fichiers sont sur un disque différent. Ma meilleure estimation est que vous utilisez un compte d'utilisateur qui n'a pas accès à l'emplacement du fichier.

+0

J'ai hébergé dans iis 5.1, je ne suis pas sûr du pool d'applications. ont défini dans la configuration Web. La sécurité d'annuaire a été définie sur l'authentification Windows intégrée dans la configuration de sécurité iis. Je suis en mesure d'accéder à la base de données en utilisant deux de mon autre service WCF, mais j'ai un problème d'accès au lecteur partagé qui est dans un emplacement différent. un exemple aiderait beaucoup. merci –

0

Vinod, le compte utilisé pour accéder au système de fichiers est System.Security.Principal.WindowsIdentity.GetCurrent(), vérifier cela. Si vous voyez ASPNET, vous n'êtes pas usurpé.

<identity impersonate="true"/> 

A pas d'effet parce que par défaut, le service WCF ne pas utiliser le pipeline d'ASP.NET (de sorte que vous n'avez pas accès à HttpContext). Si ce n'est pas ce que vous voulez activer la compatibilité aspnet comme décrit here.

ASP.NET usurpation d'identité: Par défaut, les demandes WCF fonctionne toujours comme l'identité de processus IIS , même si ASP.NET est ensemble pour permettre l'usurpation d'identité en utilisant l'option de configuration de System.Web.

Solution:

<system.serviceModel>   
    <serviceHostingEnvironment aspNetCompatibilityEnabled=”true” />  
</system.serviceModel> 

Il y a une autre façon d'usurper l'identité de l'utilisateur (mieux parce qu'il ne dépend pas de ASP.NET donc pas de surprise si vous décidez d'utiliser un service de fenêtres au lieu d'ASP. NET, mais je n'ai pas testé), jetez un oeil here.

+0

merci Slashene! ça m'a aidé. –

Questions connexes