Службы терминалов - можно ли определить физическое местоположение пользователя? - PullRequest
0 голосов
/ 16 января 2012

При использовании служб терминалов (возможно, с дополнительными компонентами Citrix или без них) можно ли идентифицировать физическое местоположение пользователя?

Рабочее место клиента ч / б представляет собой смесь - иногда ПК с Windows,в других случаях это тонкий клиент (например, Wyse и т. д.).

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

Также может 'Чтобы определить свое местоположение, требуется учетная запись пользователя - хотя большинство пользователей будут работать только в одном месте, некоторые пользователи перемещаются из одного места в другое.По соображениям безопасности и аудита разные входы в систему для каждого местоположения невозможны.

Кроме того, чтобы спросить пользователя, где они находятся (проблемное решение, безусловно), существуют ли какие-либо API, системная поддержка или методы длярешение проблемы такого типа?

Спасибо!

1 Ответ

1 голос
/ 17 января 2012

На сервере удаленного рабочего стола вы можете определить приблизительное физическое местоположение пользователя на основе его IP-адреса.Вы можете получить удаленный IP-адрес, связанный с сеансом, используя функцию Win32 API WinStationQueryInformationW с информационным классом WinStationRemoteAddress.Если вы используете язык .NET, вы можете использовать библиотеку Cassia - удаленная конечная точка IP отображается как ITerminalServicesSession.RemoteEndPoint.Не путайте удаленный IP-адрес с сообщаемым клиентом IP-адресом, доступным из API RDS - клиентский IP-адрес не будет возвращать общедоступный IP-адрес клиента, если клиент находится, например, за маршрутизатором NAT - он вернетвместо этого - частный IP-адрес.

Получив IP-адрес клиента, вы можете использовать API, например GeoIP , для поиска физического местоположения клиента.

...