【发布时间】:2011-03-15 08:56:26
【问题描述】:
我需要能够使用 HttpContext 中可用的任何东西在 ASP.Net 中从另一个系统中识别出一个系统。我尝试使用许多可用的 ServerVariables,但通常这些系统是从由映像构建的驱动器配置的。因此,由于防火墙的原因,它们的 IP 地址是相同的,并且它们的所有 ServerVariables(浏览器代理、登录用户)都相同,我需要找到能够区分不同机器的其他东西。由于该站点使用表单身份验证进行保护,因此必须关闭 Windows 集成身份验证(否则我将有权访问不同的 Logon_User 值)。
我没有与 HttpContext 结婚,但在我看来,这是使用代码检索可识别用户信息的唯一方法。
编辑/更新:
@Robert Harvey 提供了几个搜索链接,这些链接带来了很多结果,其中大多数都不符合我的要求,原因或其他原因(尽管其中仍有一些我没有的好主意'以前没想过)。首先,我需要能够确定是否有人在防火墙后面切换了机器。因此,我将提供一些代码结构细节,以阐明为什么某些事情不适合我。
- 会话/Cookie 是持久的 直到午夜(决定让路 在我的头上,我忍受它)
- 经过身份验证的用户未使用 会员用户类。 (即使它 确实,MembershipUser.IsOnline 会 只给我一个 以前登录的用户)
- 用户是 已知会删除 cookie 或关闭 无需注销的浏览器
- 我需要 一些标准可以告诉一个人 另一台机器不一定 以防止并发登录,但在 至少要识别它们。
【问题讨论】:
-
在我看来,当用户第一次从该机器访问该站点时,您可以在该机器上放置一个带有 GUID 的 cookie。当然,用户可以随时删除 cookie。这种识别支持什么样的功能?
-
你所说的“足迹”是什么意思?
-
@Robert Harvey - 大概它会阻止单个用户使用多台机器同时登录到该站点,并且如果仍有可用的活动会话,它还有助于识别用户何时切换机器.
-
@PhilPursglove - 识别可以附加到用户身份验证的机器的一些基本共同特征。用户 X 使用 PC Y 登录。用户 X 然后登录到 PC Z。我需要识别此状态。目前,如果 2 台机器具有相同的配置并且位于防火墙之后,它们看起来与服务器相同。
标签: asp.net footprint server-variables