2010-07-13 8 views
3

我需要能够使用HttpContext中的任何可用内容在ASP.Net中识别另一个系统。我试图使用许多可用的ServerVariables,但通常系统是从一个映像构建的驱动器配置的。因此,由于防火墙的IP地址相同,并且所有ServerVariables(browseragent,logonuser)都是相同的,所以我需要找到其他可以区分不同机器的其他内容。由于该站点使用formsauthentication进行了安全保护,因此必须关闭Windows集成身份验证(否则我可以访问不同的Logon_User值)。如何使用HttpContext“将足迹”放在防火墙后面的特定计算机上?

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

编辑/ UPDATE:

@Robert哈维提供了几个SEACH环节带来了不少成果,其中大部分不适合我的账单某种原因(的虽然还有一对夫妇那些我以前没有想到的伟大创意)。主要是我需要能够确定是否有人在防火墙后切换了机器。所以我会提供一些代码结构的详细信息,这些信息将揭示某些事情为什么不适合我。

  1. 会话/ Cookie是持久的 至午夜(决定中提出的方式 我的头,我住吧)
  2. 的身份验证的用户没有使用 类的MembershipUser。 (即使它 做,MembershipUser.IsOnline将 给我无非就是以前在用户登录一个 更多)
  3. 用户被 知道删除Cookie或接近 浏览器,而没有注销
  4. 我需要 一些标准的可以告诉一台 机器从另一不一定 ,以防止并发登录,但至少在 识别它们。
+1

对我来说就像你可以在用户第一次从该机器访问站点时在机器上放置一个带有GUID的cookie。当然,用户可以随时删除cookies。这种识别功能有哪些功能? – 2010-07-13 14:39:28

+0

'footprint'是什么意思? – PhilPursglove 2010-07-13 14:42:10

+0

@Robert Harvey - 大概会阻止单个用户同时使用多台机器登录该站点,并且还可以帮助识别用户何时切换机器(如果仍有活动会话可用)。 – 2010-07-13 14:42:56

回答

0

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

0

生成一个guid,当他们登录并存储在一个cookie和数据库中的用户记录。

如果不匹配,请对每个请求进行比较,您有并发登录。

要清楚这个cookie是一个会话cookie,如表单身份验证,如果他们删除它们,他们将无论如何会注销。

+1

这不涉及机器本身的识别。该解决方案将每次登录都视为单独的机器登录。我的问题具体要求确定机器。 – 2010-07-18 02:00:27

+0

如果用户在NAT后面,这是不可能的,如果用户使用不同的浏览器,要实现你所要求的也必须工作。 有趣的问题我会考虑更多。 – bleevo 2010-07-18 02:12:40

+0

如果您可以简化问题,我可以提供一些帮助,如果您只想跟踪同一台机器,相同的登录名和相同的浏览器,则可以完成此操作。 只是有一个页面返回一个GUID并将此页面的缓存设置为一年,这与Cookie不同,但它会持续到用户删除它们的缓存。 除了使用cookie的相同或相同的东西,你所要求的是不可能的。 – bleevo 2010-07-18 02:17:05

相关问题