La requête HTTP n'est pas autorisée avec le schéma d'authentification client 'Ntlm'
Tout appel d'un service web j'obtiens l'erreur suivante:
La requête HTTP est autorisée avec l'authentification du client "NTLM". L'en-tête d'authentification reçues du serveur a été "NTLM". La requête HTTP est autorisée avec l'authentification du client "NTLM". L'en-tête d'authentification reçues du serveur a été "NTLM".
J'ai une application Silverlight 4 qui appelle un service web WCF, à la fois sur mon IIS (7).
mon service web WCF en appelle un autre service web ASMX, installé sur un autre serveur web, l'utilisation de NTLM (Authentification Windows).
Les deux serveurs, le mien et celui qui héberge le service web ASMX sont dans le même domaine.
Lorsque le client Silverlight s'ouvre l'application à partir du serveur à l'aide de http://localhost/MySiteName
tout fonctionne bien. Mais lorsque le client Silverlight ouvre l'application à partir d'un autre client, qui n'est pas le serveur mais toujours dans le même domaine, à l'aide de http://MyServerName/MySiteName
puis-je obtenir de l'erreur.
L'Authentification Windows est activé dans mon IIS.
L'Authentification anonyme est désactivé dans mon IIS.
Configuration de liaison pour appeler mon service web WCF est:
<binding name="winAuthBasicHttpBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</binding>
De configuration de liaison pour l'appel du service web ASMX est:
<binding name="ClNtlmBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm" />
</security>
</binding>
source d'informationauteur kruvi
Vous devez vous connecter pour publier un commentaire.
OK, voici les choses qui viennent à l'esprit:
my WCF web service calls another ASMX web service, installed on a **different** web server
Ntlm
àWindows
et tester à nouveau.OK, quelques mots sur l'usurpation d'identité.
en gros, c'est un problème connu que vous ne pouvez pas utiliser l'emprunt d'identité de jetons que vous avez obtenu pour un serveur, pour passer à un autre serveur. La raison semble être que le jeton est une sorte de hachage de l'utilisation de son mot de passe et valide pour la machine généré de sorte qu'il ne peut pas être utilisé à partir du milieu du serveur.Mise à JOUR
Délégation est possible en vertu de la WCF (c'est à dire la redirection de l'emprunt d'identité à partir d'un serveur vers un autre serveur). Regarde cette rubrique ici.
C'est un long temps depuis que la question a été posté, mais j'ai vécu la même question dans un scénario similaire. J'ai une application console et j'était en train de consommer un service web et notre serveur IIS où le webservice a été placé a l'authentification windows (NTLM) est activé.
J'ai suivi ce lien et qui a résolu mon problème. Voici un exemple de code pour
App.config
:J'ai dû passer de domaine, nom d'utilisateur, mot de passe à partir de
à
Pour moi la solution a été d'ailleurs à l'aide de "Ntlm" comme type d'informations d'identification, comme Jeroen K de la solution. Si j'avais le niveau de permission, je voudrais plus sur son post, mais permettez-moi de poster mon code entier ici, qui permettra de soutenir à la fois Windows et d'autres types d'informations d'identification de base auth:
1) j'ai eu à faire ce qui suit avec ma configuration: (Ajouter BackConnectionHostNames ou Désactiver le contrôle de Bouclage)
http://support.microsoft.com/kb/896861
2) j'ai été un travail hors de dev du système isolé dev réseau. Il venait de travailler sur le dev du système nom de l'ordinateur dans l'URL du service web, mais quand j'ai modifié l'URL de l'URL, qui pourraient être utilisés dans la production (plutôt que le nom de l'ordinateur), j'ai commencé à faire le NTLM erreur.
3) j'ai remarqué que le journal de sécurité a montré que le compte de service à défaut de se connecter avec un message d'erreur similaire à celui de l'article MSDN.
4) Ajout de la BackConnectionHostNames fait-il si j'ai pu vous connecter au serveur via un navigateur en cours d'exécution sur le serveur, mais le compte de service avait encore NTLM des erreurs lors de la tentative d'authentification pour les services web. Je me suis retrouvé à la désactivation de la boucle de retour et qu'il fixe pour moi.
Peut-être vous pouvez vous référer à : http://msdn.microsoft.com/en-us/library/ms731364.aspx
Ma solution est de changer les 2 propriétés
authenticationScheme et proxyAuthenticationScheme "Ntlm", puis il fonctionne.
PS: Mon environnement est comme suit
- Côté serveur: .net 2.0 ASMX
- Côté Client: .net 4