限制用户可以访问ASP.NET网站的计算机数量?

限制用户可以访问ASP.NET网站的计算机数量?,asp.net,content-management,settings,Asp.net,Content Management,Settings,我正在构建一个ASP.NET应用程序。要求之一是限制用户可以访问站点内容的不同计算机的数量(例如5台计算机)。它不一定是完美的,如果一个没有It知识的普通用户无法进行检查,那么解决方案就是K 我正在考虑一种获取用户机器的fingeprint的方法(例如:MAC和Computer名称的组合)。当然,用户会被告知检查他们的MAC电脑。 然而,这很难做到,因为HTTP协议是无状态的。一种解决方案是使用ActiveX。但它仅限于Windows系统,而且很容易通过安全检查(只需禁用ActiveX,据我所知

我正在构建一个ASP.NET应用程序。要求之一是限制用户可以访问站点内容的不同计算机的数量(例如5台计算机)。它不一定是完美的,如果一个没有It知识的普通用户无法进行检查,那么解决方案就是K

我正在考虑一种获取用户机器的fingeprint的方法(例如:MAC和Computer名称的组合)。当然,用户会被告知检查他们的MAC电脑。 然而,这很难做到,因为HTTP协议是无状态的。一种解决方案是使用ActiveX。但它仅限于Windows系统,而且很容易通过安全检查(只需禁用ActiveX,据我所知,ActiveX在默认情况下是禁用的)

正如我在谷歌上搜索到的,这是一个非常常见的问题,但除了使用ActiveX之外,没有其他解决方案。有没有人遇到过这样的问题,并找到了一些好的解决方案

用户可以在不同的网络中。它将是一个外联网应用程序,因此检查IP将不起作用(路由器和动态IP)


编辑:我想这样做的目的是避免购买会员资格,然后将帐户数据共享给您的所有朋友。

除非我们讨论的是限制所有在同一局域网上的用户,否则为什么您不能只跟踪用户的IP地址,如果他们来自不在“列表”中的IP地址然后您可以将其关闭而不进行身份验证?

除非我们讨论的是限制所有在同一LAN上的用户,否则为什么您不能只跟踪用户的IP地址,如果他们来自不在其“列表”中的IP地址,那么您可以将其关闭而不进行身份验证?

  • 使用带有MAC过滤/IP过滤的防火墙
  • 应用程序中的IP白名单
  • 成员资格提供程序中“已登录”用户的阈值
场景是什么,是面向公众的网站还是您将在私有LAN内部托管的某个网站

  • 使用带有MAC过滤/IP过滤的防火墙
  • 应用程序中的IP白名单
  • 成员资格提供程序中“已登录”用户的阈值

这是一个什么样的场景,是一个面向公众的网站,还是你将在一个私人局域网内部托管的某个网站?如果在某个时间范围内进行限制足够好的话,也就是说,用户在一天、一周或一个月内只能使用五台不同的计算机,你可以随时检查ip地址。每次用户尝试访问您的站点时,您都可以使用以下算法查看是否应允许访问:

1) 检查此用户帐户以前使用过的IP地址。唯一IP是否少于5个?是=>3。否=>2

2) 已存储五个或更多IP。其中至少有一个至少有一天/一周/一个月大吗?是=>3。否=>4

3) 没关系-存储的IP不到五个,或者至少有一个太旧。删除任何太旧的,存储新的并进行身份验证。=>五,

4) 这是不好的-五个或更多的IP已经在您的数据库中,并且没有一个已经过期。不进行身份验证。=>五,


5) 结束

如果在某个时间范围内限制足够好,即用户在一天、一周或一个月内只能使用五台不同的计算机,则您可以随时检查ip地址。每次用户尝试访问您的站点时,您都可以使用以下算法查看是否应允许访问:

1) 检查此用户帐户以前使用过的IP地址。唯一IP是否少于5个?是=>3。否=>2

2) 已存储五个或更多IP。其中至少有一个至少有一天/一周/一个月大吗?是=>3。否=>4

3) 没关系-存储的IP不到五个,或者至少有一个太旧。删除任何太旧的,存储新的并进行身份验证。=>五,

4) 这是不好的-五个或更多的IP已经在您的数据库中,并且没有一个已经过期。不进行身份验证。=>五,


5) 结束

是否只有5台特定的计算机?或者不超过5台同时运行的计算机?这不是一个完美的解决方案,但您可以分别在会话开始/结束时递增/递减计数器


编辑:好的,在这种情况下,我可能会选择基于cookie的方法(同样不是完美的)。当PC连接时,在客户端计算机上存放cookie,并记录服务器上已发布的cookie。当#6尝试连接时,阻止cookie并拒绝连接。

是否只有5台特定计算机?或者不超过5台同时运行的计算机?这不是一个完美的解决方案,但您可以分别在会话开始/结束时递增/递减计数器


编辑:好的,在这种情况下,我可能会选择基于cookie的方法(同样不是完美的)。当PC连接时,在客户端计算机上存放cookie,并记录服务器上已发布的cookie。当第6次尝试连接时,阻止cookie并拒绝连接。

< P>我认为您应该考虑使用WCF Web服务和授权的WiFrase/WPF客户端。

< P>我认为您应该考虑使用WCF Web服务和授权的WiFrase/WPF客户端。即使这是基于每个浏览器,而不是基于每台机器,当然需要用户启用持久cookie,但它可能足够好吗?检查cookie是否存在并且不应该过期,如果存在,那么一切都很好。如果没有,添加cookie并在后端跟踪它

通过IP、网络或任何其他网络相关标准屏蔽访问,当然也有自己的问题,比如大多数用户没有固定的IP,或者如果是这样,通过NAT的恐怖与许多其他用户共享,最有可能的是发布防火墙,而不是应用程序本身

从尸体上提取指纹或任何身份证明材料