php 4.3.3 以降でなければ、IIS 環境下では、そもそも BASIC認証は機能していない。
原因は、まだ不明ですが、
は特定できていないものの、IIS 環境下で、BASIC認証がうまく機能していません。IIS では、PHP_AUTH_* は使用できないこともある、とのことなので、HTTP_AUTHORIZATION に書き換えれば動くかまでは不明ながらも、備忘録として掲載しておきます。
auth.php:93 + // PHP_AUTH* 変数が未定義 + if (!isset($_SERVER['PHP_AUTH_USER']) + && !isset($_SERVER ['PHP_AUTH_PW'])) + { + // HTTP_AUTHORIZATION 変数を使用した Basic 認証 + if (isset($_SERVER['HTTP_AUTHORIZATION']) + && ereg('^Basic ', $_SERVER['HTTP_AUTHORIZATION'])) + { + list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = + explode(':', base64_decode(substr($_SERVER ['HTTP_AUTHORIZATION'], 6))); + } + } + // ユーザリストに含まれるいずれかのユーザと認証されればOK if (!isset($_SERVER['PHP_AUTH_USER'])