【发布时间】:2011-03-11 22:22:20
【问题描述】:
我们正在寻求创建一个网站,向网站的所有新访问者显示信息,即欢迎,请阅读我们的帮助指南等。
最大的问题是我们的网站不允许使用长效 cookie(即超过 20 分钟)。有谁知道我们可以确定用户之前是否访问过该网站的任何方式。作为另一个限制,我们不能向系统添加任何形式的注册。
应用程序正在 ASP.Net 3.5 中创建。
感谢您的帮助
【问题讨论】:
标签: c# asp.net authentication cookies
我们正在寻求创建一个网站,向网站的所有新访问者显示信息,即欢迎,请阅读我们的帮助指南等。
最大的问题是我们的网站不允许使用长效 cookie(即超过 20 分钟)。有谁知道我们可以确定用户之前是否访问过该网站的任何方式。作为另一个限制,我们不能向系统添加任何形式的注册。
应用程序正在 ASP.Net 3.5 中创建。
感谢您的帮助
【问题讨论】:
标签: c# asp.net authentication cookies
EFF 有一个您可以访问的工具/站点,它显示了如何使用插件、操作系统详细信息、浏览器详细信息等,您可以相当独特地确定访问。它可以提供一些关于存储在数据库中的详细信息的见解,以确定用户以前是否曾去过那里:
您可以尝试使用 IP 地址,但无论如何,由于 NAT'ing 和大多数 ISP 分发动态 IP 地址,您永远无法真正知道访问的用户是不是曾经到过那里的用户。
【讨论】:
如果您无法在客户端存储信息,那么除了保存 IP 并比较它们之外,这是不可能的,这也不是很准确。
【讨论】:
是否有人知道我们可以确定用户之前是否访问过该网站的任何方法。
不,你不能。由于您不能使用 cookie,因此您所拥有的只是客户端默认发送的内容:IP 地址、用户代理信息。随着当前 IPv4 的枯竭和 NAT 设备的普及,IP 毫无用处。
【讨论】:
唯一的方法是捕获网络浏览器的 IP 地址并将其用作唯一 ID - 假设它确实是唯一的。
【讨论】:
您不能依赖 IP,因为它可以由多个用户共享,或者为一个用户更改。
如果不能在客户端存储cookie,那是不可能的。
你也可以问他:“你以前访问过这个网站吗?”,但我怀疑这是个好习惯:D
【讨论】:
在会话中存储一个布尔值,例如“AlreadyVisited”。因此,每次用户第一次访问该页面时,他都会看到您的欢迎信息。
显示后,将布尔值设置为false(需要将其存储在会话中)
【讨论】: