Apache 身份验证:失败时重定向,可靠吗?
我已将 ErrorDocument 401 设置为指向我网站的帐户创建页面,但并非所有浏览器似乎都支持此重定向(Safari)。
此外,其他浏览器(Firefox、Chrome)永远不会停止询问密码并显示 ErrorDocument。这导致大量用户在多次尝试密码后放弃尝试,而没有看到帐户创建页面。
有没有什么方法可以使重定向更加可靠,而不完全破坏基本身份验证?
I've set my ErrorDocument 401 to point to my website's account creation page, but not all browsers seem to honor this redirect (Safari).
Also, other browsers (Firefox, Chrome) never quit asking for the password and show the ErrorDocument. This causes a good number of users to give up trying after many password attempts without seeing the account creation page.
Is there any way to make the redirect more reliable, without trashing basic authentication altogether?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的问题的简单答案是否定的,如果不实现自定义身份验证,您就无法使其变得更可靠。
Firefox 和 Chrome 显示您在 ErrorDocument 401 指令中指定的页面的唯一方法是单击“取消”按钮。此外,没有使用 401 HTTP 代码发送重定向;相反,它是用 ErrorDocument 401 指令指定的文档内容。您可以使用 HTML 元标记进行重定向:
问题的可能解决方案是创建自定义基本 HTTP 身份验证模块或使用支持基本 HTTP 身份验证挂钩的 php 等语言
http://php.net/manual/en/features.http-auth.php
The simple answer to your question is no, you can't make this more reliable without implementing custom authentication.
The only way that Firefox and Chrome will display page that you specified in the ErrorDocument 401 directive is if you click cancel button. Also, there is no redirect sent with the 401 HTTP code; rather, it is a content of the document specified with ErrorDocument 401 directive. You can do redirect using HTML meta tag:
Possible solutions to your problem are to create custom basic HTTP authentication module or to use language like php that supports basic HTTP authentication hooks
http://php.net/manual/en/features.http-auth.php
我怀疑您的 Firefox 和 safari 用户没有在用户名(即 MYDOMAIN\USERNAME)之前输入域。 Firefox 中有一些设置允许传递身份验证;我不知道野生动物园。
I suspect that your firefox and safari users are not entering the domain before the username i.e. MYDOMAIN\USERNAME. There are some settings in firefox that will allow pass-through authentication; I don't know about safari.