您需要向浏览器发送 401 响应代码,这将使浏览器提示输入用户名和密码。这是从PHP 手册中获取的 PHP示例:
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Text to send if user hits Cancel button';
exit;
} else {
echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}
?>
您应该能够用您选择的语言做同样的事情,尽管您需要研究用户名和密码变量在您使用的语言中的存储位置。
作为替代方案,您也可以在 Web 服务器中进行配置。这样,Web 服务器处理身份验证,您只需对应用程序进行编程以获取通常在“REMOTE_USER”环境变量中找到的当前用户名。在 Apache 中,您可能会限制对特定文件夹的访问,如下所示:
<Directory /usr/local/apache/htdocs/secret>
AuthType Basic
AuthName "Restricted Files"
# (Following line optional)
AuthBasicProvider file
AuthUserFile /usr/local/apache/passwd/passwords
Require user rbowen
</Directory>
有关更多信息,请参阅有关身份验证和访问控制的 Apache 文档。即使您使用不同的 Web 服务器,请放心,这是 Web 服务器中的常见功能。我相信您将能够在您使用的任何 Web 服务器中找到等效的功能。