2009-06-04 3 views
4

Est-il possible de trouver/obtenir des informations sur le client de connexion lors de l'utilisation de la communication à distance sur .net 2.0? J'aime savoir obtenir des informations sur le client de connexion sur le côté serveur, afin que je puisse agir en conséquence? Il s'agit d'une application petite et très locale qui n'aura jamais plus de 10 clients simultanément connectant/demandant.remoting - informations sur le client. C#

passer la référence client dans chaque fonction? (ou un identifiant)? Je pourrais le faire de cette façon, mais je préférerais simplement obtenir l'information de la demande/connexion client. Ip-address ou similaire serait bien.

Cordialement

Répondre

1

Ce question pourrait avoir la réponse que vous recherchez.

J'ai supprimé les parties qui ne vous importent probablement pas et j'ai quitté la partie qui récupère l'adresse IP.

public ServerProcessing ProcessMessage(IServerChannelSinkStack sinkStack, 
    IMessage requestmessage, ITransportHeaders requestHeaders, 
    System.IO.Stream requestStream, out IMessage responseMessage, 
    out ITransportHeaders responseHeaders, out System.IO.Stream responseStream) 
{ 
    // Get the IP address and add it to the call context. 
    IPAddress ipAddr = (IPAddress)requestHeaders[CommonTransportKeys.IPAddress]; 
} 
0

This question montre le format apparent d'un URI, à savoir la propriété URI du ObjRef que vous obtenez de RemotingServices.GetObjRefForProxy lorsque vous passez-le à un objet distant. La chaîne entre les deux premières barres obliques est un GUID par processus, qui identifie de manière unique le client du point de vue du programme local. Dans mon cas, j'avais juste besoin d'un moyen d'identifier le client, pas son adresse IP (qui ne serait pas valide avec un canal non-TCP de toute façon), donc cela a fonctionné pour moi.

Questions connexes