在.net 2.0上使用远程处理时,是否可以找到/获取有关连接客户端的一些信息?我想知道在服务器端获取有关连接客户端的一些信息,所以我可以采取相应的行动吗?这是一个小型且非常本地的应用程序,永远不会有超过10个同时连接/请求客户端。
在每个函数中传递客户端引用? (或一些标识符)?我可以这样做,但我更愿意从请求/连接客户端获取信息。 IP地址或类似地址会很好。
此致
答案 0 :(得分:3)
答案 1 :(得分:1)
这question可能有您正在寻找的答案。
我剥离了可能与您无关的部分,并留下实际抓取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];
}
答案 2 :(得分:0)
This question显示了URI的明显格式,即当您将远程对象传递给URI时ObjRef的RemotingServices.GetObjRefForProxy属性。前两个斜杠之间的字符串是每个进程的GUID,它从本地程序的角度唯一标识客户端。
在我的情况下,我只需要一些方法来识别客户端,而不是它的IP地址(无论如何都不适用于非TCP通道),所以这对我有用。