【问题标题】:How to restrict .net remoting clients connections to .net remoting server?如何限制 .net 远程客户端连接到 .net 远程服务器?
【发布时间】:2012-02-28 10:23:16
【问题描述】:

我需要一个允许连接到 .net 远程服务器的计算机列表(我认为 IP 地址就足够了)。

例如,我有一个服务器上允许的 IP 列表。如何查看已连接客户端的 IP?

【问题讨论】:

  • 我猜你正在使用套接字,所以你可以在:*.com/questions/1904160/…
  • 我使用 .net 远程处理。本例中所有的socket连接都被框架封装了,所以我不明白如何获取连接客户端的IP地址信息。
  • 您在哪里知道 .NET Remoting 已被弃用以支持 WCF?
  • 目标操作系统有一些限制。这就是为什么我不使用我想使用的 WCF

标签: c# .net client remoting


【解决方案1】:

您可以创建自己的频道。这有点乏味,但您可以从默认实现派生,只是为了添加您需要的检查。 您可能会在以下地点抢购: http://www.codeproject.com/Articles/4175/NET-Remoting-Customization-Made-Easy-Custom-Sinks

【讨论】:

  • 也许这是一个很好的解决方案,但我同意你的观点,它太乏味了。
【解决方案2】:

我知道这可以更容易地完成。 只需在客户端创建一个 TCPClient 并连接到确定 IP 并将其发送回客户端的服务器。 这就是客户端如何找到它的IP。

【讨论】:

  • 我不明白...客户端是否需要从服务器知道其 IP 地址?无论如何也要看看这个:msdn.microsoft.com/en-us/library/aa720499(v=vs.71).aspx
  • 客户端必须向服务器提供其 IP。并且由于客户端不能自己确定自己的IP,或者服务器不能通过remotion来确定,所以它使用服务器来确定自己的IP。所有这些都是必需的,因为 .net 远程处理没有身份验证系统。感谢您的回复!
  • 关于你的链接..我不想写太多代码只是为了确定客户端的IP。
  • 客户端总是可以确定自己的IP! (它的IP地址列表,如果多个你必须与服务器的子网匹配)