【问题标题】:How can I prevent all Firefox browser instances from using the same authentication cookie?如何防止所有 Firefox 浏览器实例使用相同的身份验证 cookie?
【发布时间】:2010-10-23 09:20:51
【问题描述】:

我通过创建Default.aspx 和名为login.aspx 的自定义登录页面来实现表单身份验证。如果未经身份验证的用户浏览到Default.aspx,他们将被重定向到login.aspx,并且只有在找到与提供的凭据匹配时,用户才会被重定向到default.aspx。

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

  • 1234563以用户 U2 登录。

我怎样才能防止这种行为,以便每个浏览器实例都能收到自己的身份验证 cookie?

【问题讨论】:

  • 请清楚您所说的“浏览器实例”是什么意思。您是否启动了一个新的 firefox.exe 进程?
  • 是的,我的意思是启动新的 firefox.exe(尽管现在事实证明实际上并没有启动新进程)

标签: asp.net authentication forms-authentication


【解决方案1】:

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

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

如果您只是想让测试更容易,为什么不设置一个单独的测试配置文件并启动一个单独的 Firefox 实例?

【讨论】:

  • 为什么一个单独的实例会有自己的一组cookie?一般来说,如果我访问一个站点,它设置了一个 cookie,然后我可以重新启动计算机,我的浏览器将返回相同的 cookie。对于两个中间没有重启的浏览器实例来说还有多少呢?
  • 一组 Firefox 的配置和状态设置。默认情况下,机器上每个使用过 Firefox 的用户只有一个 - 命名为“default”,并存储在他们的用户目录中。但你可以创造更多……
  • 有趣。听起来您的意思是特定于 Firefox,而不是 Windows 配置文件。但是我看不到如何从工具选项中创建新的配置文件。您能说一下如何创建一个单独的个人资料吗?
  • 使用 -p 选项启动 firefox.exe,它可以让您管理配置文件。要在新实例已经运行时启动一个新实例,请使用 -no-remote 选项。要加载特定配置文件,请在 -p 选项后传递配置文件的名称。所以,我的测试快捷方式是这样的:firefox.exe -no-remote -p "test"
【解决方案2】:

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

我认为他的意思是您实际上从未见过两个 Firefox 实例。您只看到同一个实例运行两个窗口。当然,它们共享相同的 cookie。

我认为这意味着为了实际拥有单独的实例,它们必须在单独的登录名或用户配置文件下运行,并且它们将具有单独的 cookie 集。


编辑:一些关于 FireFox 配置文件的资源:

【讨论】:

  • 我启动了 Firefox 的两个“实例”,然后检查了任务管理器,确实只有一个实例存在。另一方面,IE 确实启动了新实例,而不仅仅是新窗口(IE 按预期工作)谢谢大家的帮助
【解决方案3】:

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

我认为您一直在使用具有相同配置文件的多个窗口,它们应该共享一个 cookie 集。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-29
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 2010-11-12
    • 2017-04-03
    相关资源
    最近更新 更多