Получить имя локального компьютера через сеанс Citrix в .NET - PullRequest
8 голосов
/ 25 июля 2010

Мне нужно получить имя локального компьютера для настольного компьютера, на котором запущено наше программное приложение через сеанс Citrix. Когда я запрашиваю My.Computer.Name, я получаю имя сервера.

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

1 Ответ

12 голосов
/ 25 июля 2010

Найдена переменная сервера, как предложил Коби выше:

%CLIENTNAME%

он заполняется только в службах терминалов или Citrix, если его развернуть на локальном ПК, будет возвращено %CLIENTNAME%. Однако на сервере Citrix или RDP это прекрасно работает. .Net код, который я использую:

TSHostName = Environment.ExpandEnvironmentVariables("%CLIENTNAME%")

...