.NET 리모 팅 서버의 특정 채널 (TCP, HTTP, IPC)에 서비스를 "바인딩"하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/234067

  •  04-07-2019
  •  | 
  •  

문제

몇 가지 서비스를 제공하는 복잡한 .NET 리모 팅 서버 앱이 있습니다. 클라이언트는 현재 TCP 및 HTTP 채널을 사용하여 서버에 연결할 수 있습니다.

이제 몇 가지 새로운 관리 서비스를 구현해야하지만 로컬 머신으로 가용성을 제한하고 싶습니다. 즉, 이러한 새로운 서비스를 사용할 수있는 관리 도구를 만들고 싶지만 민감한 데이터가 물리적으로 서버를 떠나는 것을 원하지 않습니다. 따라서 동일한 서버 컴퓨터에서 관리 도구 실행을 제한해야합니다.

새로운 서비스를 추가하고 관리자 도구에서 사용할 서버에 IPC 채널을 등록하는 것에 대해 생각했습니다. 이제 문제가 발생합니다. 원격 클라이언트가 TCP 또는 HTTP 채널을 사용하여 이러한 새로운 관리자 서비스에 연결하는 것을 어떻게 방지 할 수 있습니까? "IPC를 통해서만 사용할 수있는 Class C에서 구현 한 레지스터 서비스 X, IPC를 통해서만 구현 한 등록 서비스 X", "Class D에서 구현, App.Config (또는 사용 원격 인프라 클래스)?

나를 당황하게하는 것은 "IPC를 통해서만 사용 가능"입니다. (그리고 아니, WCF로 포팅하는 것은 지금 옵션이 아닙니다.)

도움이 되었습니까?

해결책

등록 할 채널을 지정할 수있는 RegisterWellnownServiceType에는 과부하가 없으며 IPCServerChannel에 서비스를 등록 할 방법이 없으므로 그 중 어느 것도 작동하지 않습니다.

내가 생각할 수있는 가장 좋은 것은 메시지를 걸러 내거나 보안을 제공하는 채널 링크를 작성하는 것입니다. 이들은 TCPCHANNEL 및 HTTPCHANNEL의 생성자에 추가하여 관리자 전용 호출을 필터링 할 수 있습니다.

다른 팁

서비스의 iPaddress를 호출하십시오. 127.0.0.1 이외의 다른 사람이라면 전화를 거부하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top