我想实现一个经过身份验证的服务器来接受来自命令提示符的请求。用户可以使用他的用户名和密码获得经过身份验证的令牌。
所以问题是当他拥有该令牌时,他可以使用该令牌从任何机器提出进一步的请求。我想限制单台机器的令牌。所以知道如何限制它吗?
我心里有事
- 带 IP 和端口号(我希望这不是一个合适的解决方案,因为更改 IP 很容易)
我想实现一个经过身份验证的服务器来接受来自命令提示符的请求。用户可以使用他的用户名和密码获得经过身份验证的令牌。
所以问题是当他拥有该令牌时,他可以使用该令牌从任何机器提出进一步的请求。我想限制单台机器的令牌。所以知道如何限制它吗?
我心里有事
带 IP 和端口号(我希望这不是一个合适的解决方案,因为更改 IP 很容易)
IP 和端口号不起作用。如果用户位于具有本地 IP 地址的路由后面,则相同的 IP 地址将与其他用户共享。
使用一些供应商 ID 或组织 ID 进行验证(我认为这也不是最佳解决方案)。
我不知道那件事。
我认为使用机器密钥是可能的。如何通过请求获取机器密钥?
你是说mac地址吗?获取 ASP.NET 网站用户的 MAC
我要尝试的第一件事是设置 cookieless="AutoDetect"。如果它不起作用,那么我会找到替代解决方案。
<forms cookieless="AutoDetect" ... />
如果用户不支持 cookie,它基本上会在 url 中嵌入 SessionID。
所以问题是当他拥有该令牌时,他可以使用该令牌从任何机器提出进一步的请求。我想限制单台机器的令牌。所以知道如何限制它吗?
用户可以复制他的 AuthenticationToken,并从其他浏览器使用相同的 AuthenticationToken 浏览您的站点。为什么他想这样做,虽然他可以?就像他偷偷溜进自己的房子一样,尽管他有钥匙。
默认情况下,AuthenticationToken 只能从同一个域的同一个浏览器访问(除非你修改它)。只要您使用 HTTPS,AuthenticationToken 就不能轻易被盗用(除非用户的计算机被黑客入侵)。不值得花时间通过 IP 限制 AuthenticationToken。