ASP.NET唯一浏览器ID

时间:2018-07-05 14:00:58

标签: c# asp.net session browser webforms

我有一个包含多个C#ASP.NET Web窗体项目的解决方案。我想要一种识别给定浏览器的方法,以便每个网站都可以标识同一浏览器。我需要从C#代码隐藏代码(而不是像JavaScript这样的客户端代码)中执行此操作。我也无法使用该会话,因为它没有跨网站共享。我也不认为Cookie也是如此。

例如,如果用户登录到Website1,然后使用同一台计算机上的同一浏览器登录到Website2,则我希望能够识别出该信息。但是,如果用户使用Chrome登录到Website1,然后使用FireFox登录到Website1(无论它是否在同一台计算机上),我也想检测到。

如果有什么不同,我正在使用Azure发布我的Web项目。因此,所有网站都将具有相似的域(例如,sites1.azurewebsites.net和website2.azurewebsites.net)。

1 个答案:

答案 0 :(得分:0)

如果要在同一台计算机上使用同一浏览器跟踪某人,请使用Cookie。如果网站具有不同的域,则您将需要变得聪明,因为现代浏览器对它们视为跟踪Cookie的保护很大。一种选择是使用hidden interstitial page as described here

您的第二种情况是,用户使用不同的浏览器访问同一站点,我建议存储用户代理字符串(请求标头之一)并将其添加到登录审核中,以便您可以建立供用户使用的不同用户代理的集合。给定的用户。有一些库可用于解析用户代理字符串并提取名称,版本,引擎等。

在这两种技术和一些业务逻辑之间,您应该得到所需的东西。如果您希望我澄清其中任何一个,请告诉我,我将提供更多详细信息。