【问题标题】:How can you "footprint" a specific computer behind a firewall using HttpContext?您如何使用 HttpContext “占用”防火墙后面的特定计算机?
【发布时间】:2011-03-15 08:56:26
【问题描述】:

我需要能够使用 HttpContext 中可用的任何东西在 ASP.Net 中从另一个系统中识别出一个系统。我尝试使用许多可用的 ServerVariables,但通常这些系统是从由映像构建的驱动器配置的。因此,由于防火墙的原因,它们的 IP 地址是相同的,并且它们的所有 ServerVariables(浏览器代理、登录用户)都相同,我需要找到能够区分不同机器的其他东西。由于该站点使用表单身份验证进行保护,因此必须关闭 Windows 集成身份验证(否则我将有权访问不同的 Logon_User 值)。

我没有与 HttpContext 结婚,但在我看来,这是使用代码检索可识别用户信息的唯一方法。

编辑/更新:

@Robert Harvey 提供了几个搜索链接,这些链接带来了很多结果,其中大多数都不符合我的要求,原因或其他原因(尽管其中仍有一些我没有的好主意'以前没想过)。首先,我需要能够确定是否有人在防火墙后面切换了机器。因此,我将提供一些代码结构细节,以阐明为什么某些事情不适合我。

  1. 会话/Cookie 是持久的 直到午夜(决定让路 在我的头上,我忍受它)
  2. 经过身份验证的用户未使用 会员用户类。 (即使它 确实,MembershipUser.IsOnline 会 只给我一个 以前登录的用户)
  3. 用户是 已知会删除 cookie 或关闭 无需注销的浏览器
  4. 我需要 一些标准可以告诉一个人 另一台机器不一定 以防止并发登录,但在 至少要识别它们。

【问题讨论】:

  • 在我看来,当用户第一次从该机器访问该站点时,您可以在该机器上放置一个带有 GUID 的 cookie。当然,用户可以随时删除 cookie。这种识别支持什么样的功能?
  • 你所说的“足迹”是什么意思?
  • @Robert Harvey - 大概它会阻止单个用户使用多台机器同时登录到该站点,并且如果仍有可用的活动会话,它还有助于识别用户何时切换机器.
  • @PhilPursglove - 识别可以附加到用户身份验证的机器的一些基本共同特征。用户 X 使用 PC Y 登录。用户 X 然后登录到 PC Z。我需要识别此状态。目前,如果 2 台机器具有相同的配置并且位于防火墙之后,它们看起来与服务器相同。

标签: asp.net footprint server-variables


【解决方案1】:

在他们登录时生成一个 guid,并将其存储在 cookie 中并针对数据库中的用户记录。

如果它与您的并发登录不匹配,请在每个请求上进行比较。

要明确的是,这个 cookie 是一个会话 cookie,就像表单身份验证一样,如果他们删除它,他们无论如何都会被注销。

【讨论】:

  • 这并没有解决机器本身的识别问题。此解决方案会将每个登录视为单独的机器登录。我的问题特别要求识别机器。
  • 如果用户在 NAT 后面,这是不可能的,如果用户使用不同的浏览器,要实现您的要求也必须工作。有趣的问题我会想更多。
  • 如果您可以简化问题,我可以提供帮助,如果您只想跟踪同一台机器、同一登录名、同一浏览器,则可以这样做。只需有一个返回 guid 的页面并将此页面的缓存设置为一年,这与 cookie 并没有太大不同,但它会一直存在,直到用户删除他们的缓存。除此之外,使用 cookie 或同样的事情是不可能的。
【解决方案2】:

这是一个自我回答。我遇到了Browser Spy,虽然它没有具体说明如何做到这一点,但它确实表明可以通过这些项目的组合以最小的误差范围唯一地识别特定系统。

【讨论】:

    猜你喜欢
    • 2011-04-17
    • 1970-01-01
    • 2010-09-16
    • 2019-04-15
    • 2017-05-07
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多