- 追加された行はこの色です。
- 削除された行はこの色です。
*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};
-報告者ではないですが採用されましたので完了にしておきます。 -- [[とおが]] &new{2003-12-17 (水) 21:59:31};
#comment