限制登录到某些特定设备的Web应用程序

时间:2012-10-21 01:34:45

标签: c# asp.net authentication web-applications

我创建了一个用于建筑行业的人工/时间保持应用程序,它包含一个WinForms客户端,员工实际进出时间,一个WCF Web服务,用于记录时钟进出事件并提供数据客户端,以及配置,管理和报告的后端WinForms部分。这是带有C#的.NET。

我还希望编写一个ASP.NET Web客户端,使其更加灵活,目的是从平板电脑和/或现场手机中使用它。

所以,既然背景已经不在了,那么我需要找到最好的方法来实现。

我不希望员工只能从他们的房子或他们的个人电话进出;他们应该使用公司拥有的设备进入/退出,Foreman将卡车保留在他的卡车中以用于特定目的。与此同时,我希望登录Web应用程序就像输入一个4位数的密码并点击Clock IN或Clock OUT一样简单(对建筑行业的员工没有任何冒犯,但也有一些人真的遇到了麻烦在移动设备上输入用户名和密码。)

将此Web客户端的访问限制为某些特定设备授权的最佳方法是什么?我考虑过尝试MAC地址过滤器,并且我读到了使用客户端证书来限制哪些设备可以访问Web服务,但有没有更好的方法?我的意思是,如果你得到那个碰巧是书呆子并知道如何从公司的设备上取下它的罕见的混凝土修整器,就不能将客户证书复制到某人的个人手机上?

您是否可以通过其他方式从网络应用中唯一识别设备并将其与授权设备列表进行匹配?

1 个答案:

答案 0 :(得分:2)

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

1-您可以找到客户端设备的IP地址,如果他们未获得您的授权,则可以限制它们。

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

3-您可以保留一个标志,表明您为特定用户设置了多少个cookie并以此方式进行控制。

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