如何识别请求来自同一台机器?

时间:2013-09-16 14:31:10

标签: asp.net asp.net-mvc-4 authentication forms-authentication restful-authentication

我想实现经过身份验证的服务器以接受来自命令提示符的请求。 用户可以使用他的用户名和密码获取经过身份验证的令牌。

所以问题是,当他拥有该令牌时,他可以从具有该令牌的任何机器提出进一步的请求。我想限制单机的令牌。所以任何想法如何限制它?

我心中有一些东西

  • 使用IP和端口号(我希望它不是一个合适的解决方案因为IP的更改很容易)

1 个答案:

答案 0 :(得分:0)

  

使用IP和端口号(我希望它不是一个合适的解决方案因为   改变IP很容易)

IP和端口号不起作用。如果用户位于具有本地IP地址的路由后面,则将与其他用户共享相同的IP地址。

  

使用某些供应商ID或组织ID进行验证(我认为它也不是   最佳解决方案)。

我不知道。

  

我认为可以使用机器密钥。如何获取机器密钥   请求?

你是说mac地址吗? Get the MAC of ASP.NET website user

解决方案

我要尝试的第一件事是设置cookieless =“AutoDetect”。如果它不起作用,那么我会找到替代解决方案。

<forms cookieless="AutoDetect" ... />

如果用户不支持cookie,它基本上在网址中嵌入了SessionID。

2013年9月14日更新

  

所以问题是,当他有这个标记时,他可以提出进一步的请求   从具有该令牌的任何机器。我想限制令牌   单机。所以任何想法如何限制它?

用户可以复制他的AuthenticationToken,并使用来自其他浏览器的相同AuthenticationToken浏览您的网站。尽管他可以,为什么他想这样做呢?就像他偷偷进入自己的房子,虽然他有一把钥匙。

默认情况下,只能从同一个域的同一浏览器访问AuthenticationToken(除非您修改它)。只要您使用HTTPS,AuthenticationToken就不能轻易地加入jack(除非用户的计算机被黑客攻击)。花费时间限制通过IP限制AuthenticationToken是不值得的。