2

我正在为一家小商店设计一个销售点系统。商店只有一个销售点,但通常他们是商店中的一到三个用户(卖家)。每个用户在系统中都有自己的用户帐户,因此他们经常登录和注销。我应该如何以一种好的方式设计登录/注销系统?

目前用户不使用密码,因为每次登录都需要很长时间才能输入密码。

平台是 Windows Vista,但我也想支持 Windows 7。我们在网络上使用 Active Directory。该系统目前是用Java/Swing开发的,但我正在考虑改用C#.NET/WPF。

我正在考虑智能卡解决方案,但我不知道这是否适合我的情况。它会更安全(我喜欢),但我不知道它是否易于实施和流畅使用,即我可以让 POS 系统在后台运行或在用户切换时快速启动吗?智能卡解决方案非常昂贵吗?(我的客户是小商店)在 SmartCard 解决方案中更喜欢使用 .NET 还是 Java?

除了密码/无密码/智能卡,我还有什么其他解决方案?

  • 我应该如何以一种好的方式设计登录/注销系统?
  • 为此目的使用智能卡有什么好的解决方案吗?
  • 我想要 C#.NET/WPF 和 Java/Swing 平台的建议解决方案。
  • 我想为 Active Directory 解决方案和仅在 Windows 中使用一个用户配置文件的解决方案提供建议的解决方案。

这个问题在同类产品中是如何解决的?我只见过密码解决方案,但它们很笨拙。

4

4 回答 4

1

一个有趣的解决方案是使用“快速用户切换”,即在同一台 PC 上打开多个用户会话的能力。POS 软件可以通过每个卖家账户的 Startup 文件夹启动,并在每个卖家会话中保持活动状态。

我认为在域中(即使用 Active Directory)会禁用快速用户切换,但根据The old new thing,这仅在 XP 上是正确的。我刚刚在工作中检查了我的 Win7 机器:它在域中,但仍有“切换用户”菜单项。

主要优点是,如果您的软件已经支持多用户,则无需更改它。

在编写以下内容之前,我应该进行快速用户切换检查,因为这似乎是最简单的解决方案。无论如何,这里还有其他想法。

另一种解决方案是您提到有一个 Windows 用户,但您的应用程序管理多个“虚拟用户”。智能卡是实现伪登录的好方法。在 C++ 中,API 允许检测卡片的移除或插入,因此应用程序可以检测到这一点并在插入后读取卡片以了解当前在计算机前的人。.NET 可以通过 P/Invoke 轻松调用此 API;我不太了解 Java,但如果没有发布此功能的托管库,JNI 可能是调用本机 API 的解决方案。应该做的是研究不同类型的卡以及如何与他们交谈,因为您的应用程序应该使用不需要访问 PIN 的卡(或者您回到慢速登录系统,除非绑定 4 -digit number 不被认为太慢)。

我见过餐厅服务员将钥匙插入收银机以便识别。我搜索了“收银机”,但只能找到一个完整的解决方案包,而不是像钥匙阅读器这样的组件。

一个近乎愚蠢的问题是:您需要多少安全性?在应用程序的第一个屏幕上设置大按钮是否有意义,人们通过点击来告诉系统他们是谁?完成后,他们单击“完成”按钮,应用程序返回“识别”屏幕。我把它放在最后是因为它太简单了,它有用的可能性很小。

于 2010-03-24T20:32:15.097 回答
0

我不熟悉范围广泛的智能卡提供商解决方案,但我知道金雅拓有一个 .Net 友好的设置。大多数其他人都面向Java,但支持正在扩大。

关于切换用户会话和您的应用程序,这取决于您的应用程序有多“重”。如果您的应用程序需要相当多的启动时间/资源,那么您可以考虑在机器上将基本应用程序创建为可以在后台连续运行的服务,然后您可以加载轻量级 UI 以与服务交互每个用户会话(可能通过启动菜单启动)。

CodeProject 上有一个C# 项目,它提供了一个在 windows 中与智能卡服务交互的框架 - 可能是有趣的阅读。

于 2010-03-24T20:34:42.580 回答
0

在我过去的一个项目中,我有机会使用开源计算机视觉库 (OpenCV) ,它的“人脸识别”正是您所追求的。它是使用本机代码编写的,但可以轻松地与 Java、.NET、Android、iOS 一起使用。您所需要的只是一个网络摄像头和一个带有 onClickListener 的“切换用户”按钮,它将拍摄一张照片并将其与您的员工的图像进行比较。优势?拍摄照片后,它会在不到 10 毫秒的时间内得到处理。正如 Timores 之前提到的,一旦识别出面部,您只需切换会话即可。简单而有效的解决方案。祝你好运!

于 2013-04-25T13:18:17.747 回答
-1

也许您想考虑使用条码扫描器...可能您已经在 POS 上安装了此设备...我的酒吧和餐馆软件使用条码扫描器来识别用户。您有两种使用方式:第一,用户必须使用自己的条码卡登录,然后他才能使用应用程序......第二个更好,每个人都可以使用应用程序,但打印收据用户必须使用条码卡。之后,他负责这张收据上的金额。

于 2010-06-19T15:12:34.573 回答