首页 > 解决方案 > ASP.NET 唯一浏览器 ID

问题描述

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

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

如果有什么不同,我将使用 Azure 发布我的 Web 项目。所以所有网站都会有相似的域(例如 website1.azurewebsites.net 和 website2.azurewebsites.net)。

标签: c#asp.netsessionbrowserwebforms

解决方案


如果您想在同一台计算机上使用同一浏览器跟踪某人,请使用 cookie。如果网站有不同的域,你需要聪明一点,因为现代浏览器有很多保护措施,可以防止他们看到的跟踪 cookie。一种选择是使用此处所述的隐藏插页式页面

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

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


推荐阅读