【问题标题】:remoting - information about the client. c#远程处理 - 有关客户端的信息。 C#
【发布时间】:2009-06-04 11:42:35
【问题描述】:

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

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

问候

【问题讨论】:

    标签: c# remoting


    【解决方案1】:
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      在我的例子中,我只需要某种方法来识别客户端,而不是它的 IP 地址(无论如何这对于非 TCP 通道都无效),所以这对我有用。

      【讨论】:

        猜你喜欢
        • 2014-04-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多