远程处理 – 有关客户的信息。 C#

在.net 2.0上使用远程处理时,是否可以找到/获取有关连接客户端的一些信息? 我想知道在服务器端获取有关连接客户端的一些信息,所以我可以采取相应的行动吗? 这是一个小型且非常本地化的应用程序,永远不会有超过10个同时连接/请求客户端。

在每个函数中传递客户端引用? (或一些标识符)? 我可以这样做,但我更愿意从请求/连接客户端获取信息。 IP地址或类似地址会很好。

问候

看看我为类似问题提供的答案:

在.NET远程处理调用期间识别客户端(答案)

这个问题可能有你想要的答案。

我删除了可能与你无关的部分,并留下了实际抓取IPAddress的部分。

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]; } 

这个问题显示了URI的明显格式,即当你传递远程对象时从RemotingServices.GetObjRefForProxy获得的ObjRef的URI属性。 前两个斜杠之间的字符串是每个进程的GUID,它从本地程序的角度唯一标识客户端。

在我的情况下,我只需要一些方法来识别客户端,而不是它的IP地址(无论如何都不适用于非TCP通道),所以这对我有用。