3

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

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

编辑/更新:

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

  1. 会话/Cookie 一直持续到午夜(决定在我头上做出,我接受它)
  2. 经过身份验证的用户不使用 MembershipUser 类。(即使是这样,MembershipUser.IsOnline 只会为我提供以前登录的用户)
  3. 众所周知,用户会在不注销的情况下删除 cookie 或关闭浏览器
  4. 我需要一些标准来区分一台机器和另一台机器,不一定要防止并发登录,但至少要识别它们。
4

2 回答 2

0

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

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

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

于 2010-07-18T01:27:33.857 回答
0

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

于 2010-08-10T17:33:59.467 回答