【发布时间】:2011-09-29 07:31:27
【问题描述】:
我已经在我公司的现有站点中使用 CakePHP 建立了一个有效的 ACL 系统。访问限制完美运行,无权访问网站特定部分的组和单个用户会收到一条 authError 消息,说明他们没有适当的权限。
唯一的问题是在 Firefox 中我有时会得到 - 我想称之为 - 误报。这意味着,即使用户可以访问某个控制器和操作,authError 仍然会弹出。奇怪的是,视图仍然正确渲染,除了 authError 没有任何问题。一切正常,用户可以看到他们需要看到的内容。只是有时仍会显示 authError。
现在这种情况在 Firefox 中有时会随机发生,但在 IE8 中这种情况一直都在发生。即使用户拥有对整个站点的完全访问权限,authError 消息仍会显示在 IE8 的每个页面上。我没有检查这个问题是否在其他 IE 浏览器中仍然存在,但是由于它在 IE8 和 FF 中都发生,我的想法是它们可能也存在于其他浏览器中。
现在我无法理解为什么会发生这种情况,因为这里没有真正的模式。在 FF 中 authError 随机给出一个误报,而在 IE8 中它只是一直显示。
有人可能会争辩说,出于某种原因,在 authError 消息被“执行”后检查了用户权限。即使已显示错误消息,仍可进行正确访问。我已经检查过页面的加载时间是否与它有关,但似乎不是这样。
周围是否有用户知道导致此问题的原因是什么?提前致谢!
【问题讨论】:
-
我会检查您的页面中是否有一些内容试图访问受保护的 URL(我想到了 Ajax 请求、指向受保护操作的图像的错误 URL 等)。它将在会话中设置一个 Auth 错误消息,该消息将在下一页加载时显示。 Firefox 和 IE 之间的行为差异可以通过不同的缓存策略来解释。