Получение имени хоста звонящего в WCF - PullRequest
7 голосов
/ 19 февраля 2009

Я заменяю существующий веб-сервис на сервис WCF, и в качестве первого шага миграции я собираюсь предоставить конечную точку с BasicHttpBinding, пока клиент не будет обновлен позднее в этом году.

План состоит в том, чтобы разместить новую службу WCF с помощью службы Windows (эта служба будет вызываться только из внутренней сети, так что нет реальной необходимости в HTTP), но с использованием конечных точек Basic HTTP и Net.TCP, чтобы миграция может происходить поэтапно.

Однако у меня возникают некоторые проблемы с получением имени хоста вызывающей стороны в моей службе WCF, когда я смотрю на текущий код веб-службы, который использует Context.Request.UserHostName для получения имени хоста. Мне удалось получить имя пользователя и IP-адрес вызывающего абонента, но все связанные службы разрешения / безопасности в среде используют имя хоста, а не IP, поэтому есть ли способ получить HostName внутри моей службы?

P.S. Я установил для режима безопасности значение TransportCredentialOnly, а для clientCredientialType установлено значение Windows

.

1 Ответ

10 голосов
/ 19 февраля 2009

Поскольку вы не размещаете хостинг в IIS, вы не можете использовать Режим совместимости с ASP.NET , чтобы получить доступ к HttpContext, который обычно присутствует в ASP. Чистый процесс.

Вместо этого вы можете использовать GetHostEntry метод в Dns классе в System.Net пространстве имен , чтобы получить IPHostEntry экземпляр , который будет содержать псевдонимы (имена DNS) для IP-адресов, которые вы получаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...