代码之家  ›  专栏  ›  技术社区  ›  Tom Corelis

C#:限制.Net远程处理仅接受本地主机连接

  •  3
  • Tom Corelis  · 技术社区  · 17 年前

    最好是,我希望将连接绑定到本地主机的方式不会触发用户的防火墙警报。。。但这不是必需的功能。

    汤姆

    2 回复  |  直到 17 年前
        1
  •  4
  •   Tom Corelis    16 年前

    IpcChannel的问题是,当客户端作为低完整性进程运行时,Windows命名管道在UAC下无法正常工作。不幸的是,由于我正在开发一个插件,而不是一个完整的应用程序,插件主机的低完整性意味着调用一堆Win32 API——包括一些特定于Vista的新API——并以编程方式设置应用程序令牌ACL,这是我真的不想做的事情。

    http://msdn.microsoft.com/en-us/library/bb187434%28VS.85%29.aspx

    我最终将代码恢复到TcpChannel实现,并在服务器中更改了一些内容,它工作得非常好。举手之劳

                System.Collections.IDictionary sProperties = new System.Collections.Hashtable();
    
            sProperties["port"] = SERVER_PORT;
            sProperties["authorizedGroup"] = "INTERACTIVE";
            sProperties["rejectRemoteRequests"] = true;
    
            BinaryServerFormatterSinkProvider serverProvider = new BinaryServerFormatterSinkProvider();
    
            TcpServerChannel channel = new TcpServerChannel(sProperties, serverProvider);   
            ChannelServices.RegisterChannel(channel, false);
    

    很抱歉拿走了你的答案,但我无意中发现了一些能准确回答我问题的东西。

        2
  •  2
  •   Mehrdad Afshari    17 年前