WCF에서 발신자의 호스트 이름을 얻습니다
-
05-09-2019 - |
문제
기존 웹 서비스를 WCF 서비스로 교체하고 있으며 마이그레이션의 첫 단계로 클라이언트가 올해 나중에 업그레이드 될 때까지 Basichttpbinding으로 엔드 포인트를 노출시킬 것입니다.
이 계획은 Windows 서비스와 함께 새로운 WCF 서비스를 호스팅하는 것입니다 (서비스는 인트라넷 내에서만 호출되므로 HTTP가 실제로 필요하지 않음). 단계.
그러나 WCF 서비스에서 발신자의 호스트 이름을 얻는 데 어려움이 있습니다. Context.Request.userHostName을 사용하여 현재 웹 서비스 코드를 살펴보고 호스트 이름을 얻습니다. 발신자의 사용자 이름과 IP 주소를 얻었지만 환경의 모든 관련 권한/보안 서비스는 IP와는 달리 호스트 이름을 사용하므로 내 서비스 내에서 호스트 이름을 얻을 수있는 방법이 있습니까?
추신 ClientCredientileType를 Windows로 설정하여 보안 모드를 전송 할 수있는 상태로 설정했습니다.
해결책
IIS에서 호스팅하지 않으므로 사용할 수 없습니다. ASP.NET 호환성 모드 액세스하기 위해 HttpContext
일반적으로 ASP.NET 프로세스에 존재합니다.
대신, 당신은 그것을 사용할 수 있습니다 GetHostEntry
방법 에 Dns
수업 에서 System.Net
네임 스페이스 얻기 위해 IPHostEntry
사례 여기에는 얻은 IP 주소에 대한 별칭 (DNS 이름)이 포함됩니다.
제휴하지 않습니다 StackOverflow