我创建了一个用于建筑行业的劳动/计时应用程序,它由一个 WinForms 客户端组成,员工在其中实际打卡和打卡,一个 WCF Web 服务,用于处理打卡和打卡事件并向客户提供数据,以及用于配置、管理和报告的后端 WinForms 部分。这都是带有 C# 的 .NET。
我还希望编写一个 ASP.NET Web 客户端以使其更加灵活,目的是在该领域的平板电脑和/或手机上使用它。
所以,现在背景已经不碍事了,这里有一个要求,我试图找出最好的方法来完成。
我不希望员工只能在家中或个人手机上打卡进出;他们应该使用公司拥有的设备打卡/打卡,该设备是工头出于特定目的而保存在卡车中的。同时,我希望登录到网络应用程序就像输入 4 位数的密码并单击时钟输入或时钟输出一样简单(对建筑行业的员工没有冒犯,但有些人确实很难尝试在移动设备上输入用户名和密码)。
将对该 Web 客户端的访问限制为某些特定的授权设备集的最佳方法是什么?我考虑过尝试 MAC 地址过滤器,并且阅读了有关使用客户端证书来限制哪些设备可以访问 Web 服务的信息,但有没有更好的方法?我的意思是,如果你有一个稀有的混凝土整理者,他恰好是个书呆子,并且知道如何从公司的设备上获取它,那么客户证书不能直接复制到某人的个人手机上吗?
是否有任何其他方法可以从 Web 应用程序中唯一识别设备并将其与授权设备列表匹配?