J'ai un service WCF. Comment puis-je savoir si l'appel à mon service provient d'une machine locale ou d'une machine du réseau?Comment le service peut-il connaître l'appelant?
Merci, Adrya
J'ai un service WCF. Comment puis-je savoir si l'appel à mon service provient d'une machine locale ou d'une machine du réseau?Comment le service peut-il connaître l'appelant?
Merci, Adrya
Vous pouvez vérifier l'adresse IP de l'appelant. Si c'est de la machine locale devrait être "127.0.0.1". Vous pouvez obtenir l'adresse IP de l'appelant (l'adresse distante) à partir de l'objet OperationContext. Plus d'infos ici: http://www.danrigsby.com/blog/index.php/2008/05/21/get-the-clients-address-in-wcf/
Je Dressez une liste au démarrage de toutes les adresses IP connues sur la machine locale en utilisant quelque chose comme ....
NetworkInterface[] nis = NetworkInterface.GetAllNetworkInterfaces();
List<string> addressList = new List<string>();
foreach (NetworkInterface ni in nis)
{
IPInterfaceProperties iip = ni.GetIPProperties();
UnicastIPAddressInformationCollection unis = iip.UnicastAddresses;
foreach (UnicastIPAddressInformation uni in unis)
{
string address = uni.Address.ToString();
addressList.Add(address);
}
}
puis vérifiez la addresslist voir si elle contient l'adresse IP 'distante'. Cela devrait couvrir toute demande se présentant à partir de la machine locale avec un add-add IP autre que 127.0.0.1.
+1 pour le lien sur la façon d'obtenir l'adresse à distance, la recherche de documents pendant des jours –