记住客户端设备

时间:2016-12-20 17:47:42

标签: c# asp.net-mvc asp.net-mvc-5

我想将某些计算机标记为在网站上和关闭时使用的应用程序。我希望根据他们的MAC地址标记计算机,但似乎你不能可靠地这样做。

Cookie也是一个问题,因为通常会使用不同的Windows帐户,我们希望这对所有用户都是通用的。

是否有一些Geo-Fencing,IP-Address或其他变量的组合可以通过网络轻松访问,这些变量允许我以管理员身份登录,并标记计算机,并在以后可靠地知道该设备?

我最好的变量是什么才能合理可靠地知道正在使用某台机器?

2 个答案:

答案 0 :(得分:1)

localStorage可能是您的选择。数据存储在客户端计算机上,没有过期日期,并且可以在所有浏览器上访问。你不需要IP或地理围栏;只需将数据存储在localStorage中,该数据标识计算机并在每次加载站点时检查它。

然而,这种方法有一个缺点,我不知道这对你是否有问题。 localStorage可以被用户清除,这意味着如果你标记'使用此方法的计算机然后有人清除所有浏览数据,您也会丢失数据。

以下是如何在每个浏览器上清除localStorage,取自关于清除localStorage的胡言乱语的答案(我建议阅读他的整个答案,因为它包含有用的链接)which can be found here

  

在Firefox中,当满足以下三个条件时,localStorage将被清除:(a)用户清除最近的历史记录,(b)选择要清除的cookie,(c)时间范围是"一切"

     

在Chrome中,当满足以下条件时,localStorage会被清除:(a)清除浏览数据,(b)" Cookie和其他网站数据"被选中,(c)时间框架从时间开始""。在Chrome中,现在还可以删除一个特定网站的localStorage。

     

在IE中,要清除localStorage:(a)工具 - Internet选项,(b)常规选项卡,(c)退出时删除浏览历史记录,(d)确保" Cookie和网站数据" (或者"临时互联网文件和网站文件")被选中,(e)考虑取消选中"保留收藏夹网站数据"在顶部

     

在Safari中:(a)单击Safari(b)首选项(c)选择隐私选项卡(d)单击删除所有网站数据(e)单击立即删除

     Opera:尽管Opera网站上有关于localStorage的精彩文章,但我还没有找到关于如何清除localStorage的明确(非程序化)指令。如果有人发现,请在此答案下方留下评论参考链接。

编辑:如果这些都不适合您,请查看this Battery Status API文档。当然,它不用于没有电池的计算机,但它可以用来可靠地指纹支持API的设备。然而,这有点争议。例如,用户是否处于隐身模式并不重要。如果您使用此API对其进行指纹识别,您仍会知道它们。

答案 1 :(得分:1)

每台计算机使用唯一的客户端证书是一种选择。