Получение имени пользователя клиента и имени компьютера из веб-сервиса

2

У меня есть веб-сервис на сервере! Эта услуга вызывается из клиентских приложений!

Теперь, как я могу получить имя пользователя и имя компьютера клиентов, использующих эту службу, например, если приложение из Clint1 вызывает эту службу, я хочу получить имя компьютера и имя пользователя Clint1?

Большое спасибо!

  • 0
    Какое имя пользователя и имя машины должны быть переданы, если клиент использует Linux или мобильный телефон?
  • 0
    Спасибо за комментарий! Этот сервис будет от клиентов с операционной системой Windows!
Теги:
visual-studio

3 ответа

1
Лучший ответ

На самом деле вы не можете надежно.

Серверная переменная REMOTE_HOST может предоставить вам ее, но в большинстве случаев это будет IP-адрес, и он вполне может быть прокси-IP-адресом. Также - это то, что можно легко подделать.

То же самое касается имени пользователя (REMOTE_USER), если вы не используете какой-либо механизм WS-Security для аутентификации пользователя, вызывающего ваш веб-сервис.

  • 0
    Спасибо за ответ! Этот сервис используется только от клиентов в локальной сети!
0

Как сказал Вим, вы не можете надежно получить эту информацию. Для гарантированной сети Windows вы можете получить текущий аутентифицированный пользователь (на машине) с помощью серверной переменной:

System.Web.HttpContext.Current.Request.ServerVariables("LOGON_USER")

Предполагается, что переменная REMOTE_HOST возвращает имя машины, но в большинстве случаев (по его словам) это будет только IP-адрес.

Даже в локальной сети это не рекомендуемая практика безопасности. Эта информация все еще может быть подделана локально, предоставляя внутренним пользователям возможность маскироваться под другие пользователи. Если он просто используется для идентификации (а не аутентификации или авторизации), он, вероятно, будет "достаточно хорошим". Если вы поддерживали небольшую информацию (или сетевую команду), в которой каждый компьютер идентифицировал ожидаемый IP-адрес, эта информация будет достигать того, что вы хотите.

0

Клиент должен будет передать эту информацию в службу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню