Интересным решением является использование «Быстрого переключения пользователей», то есть возможность открытия нескольких пользовательских сессий на одном ПК. Программное обеспечение POS может быть запущено через папку «Автозагрузка» каждой учетной записи продавца и будет оставаться активным в каждой сессии продавца.
Я думал, что находясь в домене (т.е. используя Active Directory) отключает быстрое переключение пользователей, но согласно Старая новая вещь , это было верно только для XP. Я только что проверил на своем компьютере с Win7 на работе: он находится в домене, но все еще имеет пункт меню «переключить пользователя».
Основным преимуществом является то, что если ваше программное обеспечение уже поддерживает многопользовательский режим, вам не нужно его менять.
Я должен был выполнить проверку быстрого переключения пользователей, прежде чем писать то, что ниже, потому что это, кажется, самое простое решение. В любом случае, есть и другие идеи.
Другим решением является то, что вы упоминаете о наличии одного пользователя Windows, но нескольких «виртуальных пользователей», которыми управляет ваше приложение. Смарт-карта - это хороший способ реализовать псевдо-логин. В C ++ API позволяет обнаруживать удаление или вставку карты, поэтому приложение может обнаружить это и прочитать карту после вставки, чтобы узнать, кто в данный момент находится перед компьютером. .NET может легко вызвать этот API через P / Invoke; Я не знаю много о Java, за исключением того, что JNI мог бы быть решением для вызова нативного API, если нет управляемой библиотеки, которая публикует эту возможность.
Что нужно сделать, это исследовать различные типы карт и как с ними разговаривать, так как ваше приложение должно использовать карту, для которой не требуется доступ к ПИН-коду (или вы вернулись к системе медленного входа в систему, за исключением случаев, когда используется -значение не считается слишком медленным).
Я видел рестораны, в которых официанты вставляют ключ в кассу для идентификации. Я погуглил «кассовые аппараты», но смог найти только полный пакет решений, а не такие компоненты, как считыватель ключей.
Почти идиотский вопрос: сколько безопасности вам нужно? Имеет ли смысл иметь большие кнопки на первом экране приложения, где люди нажимают, чтобы сообщить системе, кто они? По завершении они нажимают кнопку «Готово», и приложение возвращается к экрану «Идентификация». Я поставил это в конце, потому что это настолько упрощенно, что у него низкая вероятность быть полезным.