Службы терминалов - можно ли определить физическое местоположение пользователя?
При использовании служб терминалов (возможно, с дополнениями Citrix или без них) можно ли определить физическое местоположение пользователя?
Клиентская рабочая станция - смесь, иногда компьютер под управлением Windows, а иногда - тонкий клиент (например, Wyse и т. Д.).
Наше приложение должно варьировать бизнес-функции, основанные, в основном, на местонахождении пользователя. Например, соблюдение различных государственных законов или обработка наличности (кассовый ящик может использоваться на любой рабочей станции в филиале или магазине, но к нему нельзя получить доступ из других филиалов или магазинов).
Также не может зависеть от входа пользователя в систему для определения своего местоположения - в то время как большинство пользователей будут работать только в одном месте, некоторые пользователи путешествуют из одного места в другое. В целях безопасности и аудита наличие разных входов в систему для каждого местоположения невозможно.
Кроме того, чтобы спросить пользователя, где он находится (проблемное решение, наверняка), есть ли какие-либо API, системная поддержка или методы для решения этого типа потребностей?
Спасибо!
1 ответ
На сервере удаленного рабочего стола вы можете определить приблизительное физическое местоположение пользователя на основе его IP-адреса. Вы можете получить удаленный IP-адрес, связанный с сеансом, используя функцию Win32 API WinStationQueryInformationW с информационным классом WinStationRemoteAddress. Если вы используете язык.NET, вы можете использовать библиотеку Cassia - удаленная конечная точка IP отображается как ITerminalServicesSession.RemoteEndPoint. Не путайте удаленный IP-адрес с сообщенным клиентом IP-адресом, доступным из RDS API - сообщенный клиентом IP-адрес не будет возвращать общедоступный IP-адрес клиента, если клиент находится, например, за маршрутизатором NAT - он вернет частный IP-адрес вместо.
Получив IP-адрес клиента, вы можете использовать API-интерфейс, например GeoIP, для поиска физического местоположения клиента.