*IIS 環境下における Basic認証が動かない [#vf0aa9cb] -ページ: BugTrack -投稿者: [[upk]] -優先順位: 普通 -状態: 保留 -カテゴリー: 本体バグ -投稿日: 2003-09-05 (金) 22:20:08 -バージョン: **メッセージ [#nf73447b] ***前提 [#v7c1616d] php 4.3.3 以降でなければ、IIS 環境下では、そもそも BASIC認証は機能していない。 ***内容 [#n6ed6db7] 原因は、まだ不明ですが、 -php.ini の設定方法なのか? -func.php の、PHP_AUTH_USER がいけないのか? は特定できていないものの、IIS 環境下で、BASIC認証がうまく機能していません。IIS では、PHP_AUTH_* は使用できないこともある、とのことなので、HTTP_AUTHORIZATION に書き換えれば動くかまでは不明ながらも、備忘録として掲載しておきます。 ---- -最近 IIS の環境を弄っててこの問題にぶつかりまして、調べてみたらやはり HTTP_AUTHORIZATION しか使えませんでした。そこで、http://homepage1.nifty.com/yito/namazu/gbook/20021127.1530.htmlを参考に以下を追加してみました。 -- [[とおが]] &new{2003-12-02 (火) 07:36:22}; 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']) -ありがとうございます。取り込ませていただきました。 -- [[ぱんだ]] &new{2003-12-03 (水) 00:00:02}; #comment