如何防止所有Firefox浏览器实例使用相同的身份验证Cookie?

如何防止所有Firefox浏览器实例使用相同的身份验证Cookie?

问题描述:

我通过创建Default.aspx和名为login.aspx的自定义登录页面实现了表单身份验证。如果未经身份验证的用户浏览到Default.aspx,它们将被重定向到login.aspx,并且只有在找到匹配的提供凭据时,用户才会重定向到default.aspx如何防止所有Firefox浏览器实例使用相同的身份验证Cookie?

  • 但使用Firefox时,它出现在所有浏览器实例使用相同的身份验证cookie的实例,因此如果用户在浏览器B1日志中为用户U1,那么所有的浏览器实例访问该Web应用程序将作为记录用户U1。因此,如果例如第一次浏览器实例B1请求Default.aspx,它将立即被授予访问权限。

  • 如果我登录的用户U1后,我上网到login.aspx并登录使用不同的用户名(比如用户U2),然后在回传的所有浏览器(以前登录的用户U1)现在将作为记录用户U2。

如何防止此类行为,以便每个浏览器实例都能接收到自己的身份验证cookie?

+0

请明确你的意思是“浏览器实例”。你开始一个新的firefox.exe过程? – 2009-05-03 00:01:09

+0

是的,我的意思是开始新的firefox.exe(尽管现在事实证明没有新的进程实际开始) – SourceC 2009-05-03 19:07:36

每个浏览器实例都有自己的一组cookie。和历史。和书签。因为每个正在运行的实例都需要附加到它自己的配置文件中。

但是,任何给定的实例都可以打开多个选项卡和窗口。那些将共享cookie。如果这不适合你,那么请不要使用cookies ...

如果你只是想让测试变得更简单,为什么不建立一个单独的测试配置文件并启动一个独立的Firefox实例?

+1

为什么单独的实例有它自己的一组cookie?一般来说,如果我去了一个网站,并设置了一个cookie,我可以重新启动计算机,并且我的浏览器会发回相同的cookie。对于没有重新启动的两个浏览器实例,还有多少? – 2009-05-03 00:02:39

一个快速实验向我展示了Shog9的含义。启动Firefox。然后启动Firefox的另一个“实例”。然后看任务管理器,你会看到你只有一个firefox.exe进程在运行。

我认为他的意思是说你从未真正见过两个Firefox实例。你只看到了同一个实例运行两个窗口。当然,那些共享相同的cookie。

我认为这意味着为了实际上有单独的实例,他们将不得不在单独的登录或用户配置文件下运行,他们将具有单独的Cookie集。


编辑:一些在Firefox上型材资源:

我第二个,你的问题是措辞含糊。 Firefox允许您拥有任意数量的Cookie集。每组必须是Firefox配置文件的一部分。每个配置文件可以有任意数量的窗口和进程打开(注意,为避免加入现有进程,您必须使用no-remote)。

我想你一直在使用多个窗口具有相同的配置文件,预计将共享一个cookie集。