2014-10-08 7 views
0

Я знаю очень мало о Citrix, кроме как (поправьте меня, если я ошибаюсь) он запускает отдельную копию окон, а также все приложения и т. Д. Для каждого одновременного пользователя сервера citrix.Подсчет уникальных пользователей на Citrix?

При развертывании приложения, которое я написал на сервере citrix, есть ли способ рассказать, сколько пользователей в общей сложности? например может ли citrix дать мне уникальный идентификатор для клиентской рабочей станции или учетной записи пользователя? Или ограничено ли я обнаружением одновременных пользователей?

ответ

1

Это все правильно, но на самом деле. Это, строго говоря, совершенно отдельная копия Windows. Каждый пользователь получает свой собственный «сеанс», который является их собственной уникальной песочницей на машине, и есть общие службы, которые используются во время сеансов.

Все, о чем я расскажу, на самом деле не характерно для Citrix. Это стандартный материал Windows, который также будет применяться, если ваши пользователи будут RDP-сервер на сервере. Существует куча состояния вы можете запросить, что может быть полезно для вас:

  • идентификатор сеанса будет уникальным для жизни сессии (однако с течением времени сессий приходят и уходят, а идентификаторы действительно получают повторно использовать) , Вероятно, это не лучший выбор для вас, так как у вас есть пользователь с несколькими сеансами на одном сервере. Чтобы узнать больше об этом и других API-интерфейсах, ознакомьтесь с API-интерфейсами служб удаленных рабочих столов: http://msdn.microsoft.com/en-us/library/aa383464(v=vs.85).aspx
  • Вы можете запросить текущий идентификатор пользователя, чтобы получить имя пользователя, домен и т. Д. Просто используйте стандартные API-интерфейсы идентификации это.

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

E.g. создайте еще один долговечный сервис, который все экземпляры вашего приложения говорят, чтобы сообщить, что они существуют, а затем запросить, чтобы получить текущий уникальный счет пользователя.

Если вы хотите получить Citrix, вы можете использовать что-то вроде XenApp Powershell SDK, однако в зависимости от того, что вы хотите запросить, текущему пользователю, вероятно, потребуется какая-либо форма делегированного разрешения администратора в ферме Citrix.

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

+0

Это хороший ответ, сейчас мне нужна ракета-распылитель. Конечно, проблема с запросом идентификации пользователей заключается в том, что пользователи могут обманывать, делясь учетными записями. Есть ли способ обойти это? Также, исходя из того, что вы говорите, будут ли ключи реестра в файлах HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE по-прежнему поступать правильно, независимо от работы в RDP/Citrix/etc? т. е. «CURRENT_USER» зависит от текущего пользователя, а «LOCAL_MACHINE» используется всеми пользователями физической машины? –

+1

Да, эти рег-ульи будут работать, как ожидалось, работающие под управлением RDS/Citrix не изменят работу. Трудно полностью защитить себя от вредоносных пользователей. Если пользователи, использующие учетные записи, действительно являются проблемой для вас, то все, что вы действительно можете сделать, это подсчет одновременных сеансов на сервере. – donovan

Смежные вопросы