1

我创建了一个用于建筑行业的劳动/计时应用程序,它由一个 WinForms 客户端组成,员工在其中实际打卡和打卡,一个 WCF Web 服务,用于处理打卡和打卡事件并向客户提供数据,以及用于配置、管理和报告的后端 WinForms 部分。这都是带有 C# 的 .NET。

我还希望编写一个 ASP.NET Web 客户端以使其更加灵活,目的是在该领域的平板电脑和/或手机上使用它。

所以,现在背景已经不碍事了,这里有一个要求,我试图找出最好的方法来完成。

我不希望员工只能在家中或个人手机上打卡进出;他们应该使用公司拥有的设备打卡/打卡,该设备是工头出于特定目的而保存在卡车中的。同时,我希望登录到网络应用程序就像输入 4 位数的密码并单击时钟输入或时钟输出一样简单(对建筑行业的员工没有冒犯,但有些人确实很难尝试在移动设备上输入用户名和密码)。

将对该 Web 客户端的访问限制为某些特定的授权设备集的最佳方法是什么?我考虑过尝试 MAC 地址过滤器,并且阅读了有关使用客户端证书来限制哪些设备可以访问 Web 服务的信息,但有没有更好的方法?我的意思是,如果你有一个稀有的混凝土整理者,他恰好是个书呆子,并且知道如何从公司的设备上获取它,那么客户证书不能直接复制到某人的个人手机上吗?

是否有任何其他方法可以从 Web 应用程序中唯一识别设备并将其与授权设备列表匹配?

4

1 回答 1

3

在 ASP.net 中,您不能获取客户端网络适配器的 MAC 地址。因此,您不能指望为“有效”设备定义 MAC 地址白名单。但您也可以使用其他一些技巧:

1-您可以找出您的客户端设备的 IP 地址,并在未经您授权的情况下限制它们。

2-您还可以检测操作系统、计算机名称和浏览器名称以及屏幕分辨率,您可以在这种情况下使用它们。

3- 您可以标记您为特定用户设置了多少 cookie,并以这种方式进行控制。

4-您可以使用 Windows 身份验证来阻止您的用户进行基于表单的身份验证(当然,如果您的网络是基于活动目录的)

于 2012-10-21T13:38:31.197 回答