Стандартная авторизация в IIS

Tn

Guest
Стандартная авторизация в IIS

Использую следующий скрип авторизации:
PHP:
  $php_auth_user = isset($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] : '';
  $php_auth_pw = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : '';

  $_SESSION = array();
  unset($_SESSION);
  session_destroy();

  if (($php_auth_user != $manager_login) || ($php_auth_pw != $manager_pw)) {
    header("WWW-Authenticate: Basic realm=\"Administrator Login\"");
    header("Status: 401 Unauthorized");
    echo "Access Denied!";
    exit;
  } else {
    session_start();
    $_SESSION['manager'] = session_id();
    header("Location: $site_uri/manager/index.php");
    exit;
  }
Для Apache работает идеально, переношу на хостинг с IIS работать отказывается - получаю окошко для авторизации, ввожу логин/пароль, получаю это окошко снова.

Насколько я понимаю, в идеале схема работает следующем образом:
1) Броузер получает сообщение 401, выдает окошко авторизации
2) Пользователь вводит данные, которые отсылаются на этот же скрипт
3) Скрипт сверяет $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW'].

Так вот в случае, когда web-сервер IIS, либо на 2) этапе этот скрипт не получает данные, либо они содержаться в других переменных. Если честно, я не могу понять в чем дело, т.к. я не могу получить набор переменных $_SERVER.. (с IIS я вообще не разу в жизни не работал)

Объясните, пожалуйста, в чём дело?

phpinfo:
System: Windows NT 5.0 build 2195
Build Date: May 12 2002 23:51:56
Server API: CGI
safe_mode: off
 

Tn

Guest
Спасибо, всё ясно:
Также следует заметить, что до версии PHP 4.3.3, HTTP-аутентификация не работала на серверах под управлением Microsoft IIS, если PHP был установлен как CGI-модуль, в силу некоторых ограничений IIS.
 
Сверху