Как плавно переключать пользователей в системе Point-Of-Sale? - PullRequest
2 голосов
/ 24 марта 2010

Я разрабатываю систему для небольших магазинов. В магазине есть только одна торговая точка, но часто в магазине бывает от одного до трех пользователей (продавцов). Каждый пользователь имеет свою собственную учетную запись в системе, поэтому он очень часто входит и выходит из системы. Как мне правильно спроектировать систему входа / выхода?

На данный момент пользователи не используют пароли, потому что ввод пароля каждый раз занимает много времени.

Платформа - Windows Vista, но я бы тоже хотел поддерживать Windows 7. Мы используем Active Directory в сети. На данный момент система разработана на Java / Swing, но я собираюсь перейти на C # .NET / WPF.

Я думаю о решении SmartCard, но не знаю, подходит ли оно моей ситуации. Это было бы более безопасно (что мне нравится), но я не знаю, будет ли это легко внедрить и с легкостью использовать, то есть можно ли запустить POS-систему в фоновом режиме или запустить очень быстро, когда пользователи переключаются? Решения SmartCard очень дороги? (Мои клиенты - небольшие магазины). Является ли предпочтительным использование .NET или Java в решении SmartCard?

Какие у меня есть другие решения, кроме паролей / без паролей / смарт-карт?

  • Как мне правильно спроектировать систему входа / выхода?
  • Есть ли какое-нибудь хорошее решение, использующее для этого SmartCards?
  • Я хотел бы предложить решения как для платформ C # .NET / WPF, так и для Java / Swing.
  • Я хотел бы предложить решения как для решений Active Directory, так и для решений, которые используют только один профиль пользователя в Windows.

Как эта проблема решается в аналогичных продуктах? Я видел только парольные решения, но они неуклюжи.

Ответы [ 4 ]

1 голос
/ 24 марта 2010

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

Я думал, что находясь в домене (т.е. используя Active Directory) отключает быстрое переключение пользователей, но согласно Старая новая вещь , это было верно только для XP. Я только что проверил на своем компьютере с Win7 на работе: он находится в домене, но все еще имеет пункт меню «переключить пользователя».

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

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

Другим решением является то, что вы упоминаете о наличии одного пользователя Windows, но нескольких «виртуальных пользователей», которыми управляет ваше приложение. Смарт-карта - это хороший способ реализовать псевдо-логин. В C ++ API позволяет обнаруживать удаление или вставку карты, поэтому приложение может обнаружить это и прочитать карту после вставки, чтобы узнать, кто в данный момент находится перед компьютером. .NET может легко вызвать этот API через P / Invoke; Я не знаю много о Java, за исключением того, что JNI мог бы быть решением для вызова нативного API, если нет управляемой библиотеки, которая публикует эту возможность. Что нужно сделать, это исследовать различные типы карт и как с ними разговаривать, так как ваше приложение должно использовать карту, для которой не требуется доступ к ПИН-коду (или вы вернулись к системе медленного входа в систему, за исключением случаев, когда используется -значение не считается слишком медленным).

Я видел рестораны, в которых официанты вставляют ключ в кассу для идентификации. Я погуглил «кассовые аппараты», но смог найти только полный пакет решений, а не такие компоненты, как считыватель ключей.

Почти идиотский вопрос: сколько безопасности вам нужно? Имеет ли смысл иметь большие кнопки на первом экране приложения, где люди нажимают, чтобы сообщить системе, кто они? По завершении они нажимают кнопку «Готово», и приложение возвращается к экрану «Идентификация». Я поставил это в конце, потому что это настолько упрощенно, что у него низкая вероятность быть полезным.

0 голосов
/ 25 апреля 2013

У меня была возможность поработать с Open Source Computer Vision Library (OpenCV) в одном из моих прошлых проектов и его "Распознавание лиц" - это то, что вам нужно. Он написан с использованием собственного кода, но может быть легко использован с Java, .NET, Android, iOS. Все, что вам нужно, это веб-камера и кнопка «Переключить пользователя» с помощью onClickListener, которая сделает снимок и сравнит его с изображениями ваших сотрудников. Преимущество? Как только снимок сделан, он обрабатывается менее чем за 10 мс. И, как Тимор упомянул ранее, когда лицо распознано, вы просто переключаете сеанс. Простое, но эффективное решение. Удачи!

0 голосов
/ 19 июня 2010

может быть, вы хотите подумать об использовании сканера штрих-кода ... возможно, у вас уже есть это устройство в POS ... мое программное обеспечение для баров и ресторанов использует сканер штрих-кода для распознавания пользователей. У вас есть 2 варианта использования: во-первых, пользователь должен войти в систему со своей картой со штрих-кодом, затем он может использовать приложение ... второе лучше, каждый может использовать приложение, но для печати квитанции пользователь должен использовать карту со штрих-кодом. После этого он несет ответственность за эту сумму в этой квитанции.

0 голосов
/ 24 марта 2010

Я не знаком с широким спектром решений для поставщиков смарт-карт, но знаю, что Gemalto имеет дружественную настройку .Net. Большинство других ориентировано на Java, но поддержка расширяется.

Что касается переключения пользовательских сессий и вашего приложения, это зависит от того, насколько «тяжелым» является ваше приложение. Если вашему приложению требуется совсем немного времени / ресурсов для запуска, то вы можете рассмотреть возможность создания базового приложения в качестве службы на компьютере, который может непрерывно работать в фоновом режиме, а затем вы можете загрузить легкий интерфейс для взаимодействия со службой с каждым сеансом пользователя (возможно, запуск через меню «Пуск»).

Существует проект C # на CodeProject , который обеспечивает основу для взаимодействия со службами смарт-карт в Windows - может быть интересно прочесть.

...