Question

Je remplace un service Web existant avec un service WCF et comme la première étape de la migration, je vais exposer un point final avec BasicHttpBinding jusqu'à ce que le client est mis à jour plus tard dans l'année.

Le plan est d'accueillir le nouveau service WCF avec un service de fenêtres (le service ne sera appelé à partir de l'intranet donc il n'y a pas de réel besoin HTTP), mais l'exposition HTTP de base et paramètres Net.TCP de sorte que la migration peut se produire par étapes.

Cependant, je vais avoir dans mon service WCF une difficulté à obtenir le nom d'hôte de l'appelant, en regardant le code de service Web actuel qu'il utilise Context.Request.UserHostName pour obtenir le nom d'hôte. J'ai réussi à obtenir le nom d'utilisateur de l'appelant et l'adresse IP, mais toutes les autorisations connexes / services de sécurité dans l'environnement utilise le nom d'hôte par opposition à la propriété intellectuelle, donc est-il un moyen pour moi d'obtenir le HostName dans mon service?

P.S. J'ai mis en mode sécurité TransportCredentialOnly avec clientCredientialType défini sur Windows

Était-ce utile?

La solution

Puisque vous n'êtes pas hébergez dans IIS, vous ne pouvez pas utiliser ASP. mode de compatibilité NET pour accéder aux HttpContext qui serait normalement présent dans un processus d'ASP.NET.

, vous pouvez utiliser le GetHostEntry méthode sur la classe Dns dans espace de noms System.Net pour obtenir le instance de IPHostEntry qui contiendra les alias (nom DNS) pour les adresses IP que vous obtenez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top