J'essaie de configurer une impersonnation du client sur mon service.
Je dois définir une valeur pour le servicePrincipalName de mon point final de services p>
Je regarde ce Mon service est hébergé Dans une application de console sur un serveur que nous allons appeler ServerName1. Quel est spécifiquement que mon serviceprincipalname soit? P> J'ai essayé, sans JOY: P>
L'URI est la suivante: net.tcp: // serveName1: 9990 / testService1 / code>. P>
<identity>
<servicePrincipalName value="ServerName1" />
</identity>
4 Réponses :
Le nom de l'utilisateur que vous souhaitez utiliser l'utilisateur (exécuter sous). Donc, si vous souhaitez l'exécuter sous les informations d'identification «réseau local», le XML ci-dessus devrait ressembler à:
<identity> <servicePrincipalName value="Local Network" /> </identity>
Il y a donc une liste de valeurs acceptées qui peuvent être utilisées ici, c'est-à-dire. "Réseau local" en étant l'un d'entre eux? Quelle valeur devrait-elle être si je souhaite utiliser les informations d'identification des clients appelants?
@Tom je ne crois pas que vous puissiez définir cela dans la configuration, mais vous pouvez le faire à partir du code
J'utilisais un service réseau pour exécuter mes tests automatisés, notamment en générant des demandes de savon pour tester certains services de WCF. Les demandes échouaient et ce «réseau local» a résolu mon problème.
Configuration du serviceprinciplename est un sujet difficile à décrire dans quelques mots Peut-être que ces articles aideront:
Très probablement, vous devez la configurer la manière suivante P>
<identity> <userPrincipalName value="account@domain.com" /> </identity>
Pour un guide complet sur la construction de votre SPN, consultez ces articles: P>
Ce sont plus sur le côté de l'infrastructure (ajouts) mais la première partie est très utile pour les programmeurs trop p>
Lorsque vous utilisez des services WCF hébergés par IIS. P>
Nous utilisons "Host / ComputerName", comme dans l'image ci-dessous
/ C ?????? DataService est le nom de la demande ("Toms TestService1")
Piscine d'applications: C ???? Pool peut être "DefaultAppPool", dans le cas de "Utilisateur d'applications (authentification transparente)", vous utiliserez " Et, même en utilisant l'authentification anonyme, vous pouvez définir "Autorisation des formulaires", à une ressource spécifique à l'intérieur de l'application WCF, par exemple "MasterSettings.svc". P>
J'espère que cela aide p>