两个用户可以共享相同的Request.UserHostAddress

时间:2015-09-24 23:45:40

标签: asp.net .net asp.net-mvc-5 network-programming request

我正在开发一个asp.net mvc-5 Web应用程序,可供公众用户使用(无需登录)。我需要阻止同一个用户在一小时内提交超过5个联系我们的请求。所以我需要一种方法来区分我收到的请求是否来自同一个用户。所以我找到了Request.UserHostAddress,它将包含用户IP(如果我没有错误的公共IP)。但我的问题是,这个价值在世界各地的每个用户中都是独一无二的吗?或者用户可能会分享这个价值?如果答案是用户可能会共享Request.UserHostAddress,那么哪个值会给我更好的方式来验证"用户 ??

2 个答案:

答案 0 :(得分:2)

  

这个值对于全世界的每个用户来说都是唯一的吗?

没有。它将是用户连接到互联网的独特之处。特定路由器/防火墙后面的所有用户将使用相同的IP地址。

  

哪个值会让我更好地“验证”用户

没有这样的价值。通常如何处理是通过设置cookie。

答案 1 :(得分:0)

同一台基于NAT的路由器上的多个用户将拥有相同的公共IP地址。在安全堆栈交换中查看此artice以获取替代方案:     https://security.stackexchange.com/questions/81302/how-to-uniquely-identify-users-with-the-same-external-ip-address