我可以使浏览器强制认证与智能卡,如身份证,当php文件是用SSLVerifyClient保护在apache conf。
现在,我需要显示index.php,通常不需要智能卡身份验证,有时同一个页面必须进行用户身份验证。
doStuff();
if ($needed==1)
authenticateUser();
doMoreStuff();authenticateUser()必须包含什么内容才能导致浏览器询问智能卡pin代码?
发布于 2009-12-01 07:08:29
你把这些东西都混在一起了。
authenticateUser();在服务器上运行,而身份验证在客户端进行。您不能在运行客户端身份验证的PHP脚本中途停止,然后继续运行PHP脚本。
作为对您问题的解决方案,这可能适用于您的情况:
if(authenticationNeeded)
{
// redirect to a page that requires authentication that does what index was supposed to do.
redirect('index_ssl.php');
}通过使用.htaccess,您可以仅为某些目录/文件定义SSLVerifyClient require。
关键的一点是:您的web服务器(在本例中为Apache)需要一个客户端证书,以便授予对您为其指定SSLVerifyClient require的任何目录/文件的访问权限。
总之,没有办法做你想做的事情。您只能拥有需要或不需要客户端证书的文件/目录。没有办法在PHP文件中间停止,以便需要客户端证书,但您可以重定向到需要客户端证书的证书。
https://stackoverflow.com/questions/1822119
复制相似问题