我有一个使用用户和组设置的基本身份验证
AuthType Basic
AuthName "GSD Dev Area"
AuthUserFile /coding/conf/passwords/gsdesign/htpasswd
AuthGroupFile /coding/conf/passwords/gsdesign/groups
Require valid-user
现在我想保护一个只有一个组的访问权限的文件夹
require group myGroup
它有效,但有一个问题。如果我不授予对该文件夹的访问权限,我将再次获得登录窗口,并且我想通过禁止。我怎样才能做到这一点。
非常感谢。
稍后编辑 我已经使用有效的用户名登录,但是当我访问具有我不属于的要求组的区域时,我希望获得拒绝身份验证而不是登录框。
不确定我是否理解这个问题,但我认为您是说当您提供无效的用户名/密码组合时,浏览器会再次弹出窗口,而不是说“访问被拒绝”。这是浏览器的一项功能——它会提示您输入凭据,直到您正确或单击取消(此时您确实会获得拒绝访问页面)。据我所知,改变这一点的唯一可靠方法是自己进行身份验证,而不是使用 AuthType Basic。
顺便说一句,永远,永远不要使用 AuthType Basic 来保护您关心的任何内容,除非您的页面是通过 https 提供的。AuthType Basic 以明文形式发送凭据,因此您需要 SSL 层为您加密它。
这样做很可能,但需要您为 Apache 编写自定义处理程序。您可以将其编写为 C、Perl 或 Python 或 Apache 处理程序 API 的任何其他绑定。
HTTP 身份验证的标准行为是为没有任何身份验证信息的请求和不正确的详细信息返回 401 Authentication Required 响应。浏览器在收到 401 响应时会显示登录对话框。您必须使用 401 Authentation Required 响应来响应没有身份验证信息的请求,并使用 403 Forbidden 响应来响应任何不正确的身份验证。这应该可以解决您的问题。