Представленный здесь метод доступа пользователя требует небольшой модификации

модуль (wiki.cgi) для доступа с любой страницы:

$par{ 'extra' } = " <ahref =pass .cgi?$page>изменить<br>пароль</a>", если

$ENV{REMOTE_USER)

экв.

$страница;

Кроме того, эту ссылку можно просто отредактировать в шаблоне.


232

ПРОВЕРЕННЫЕ КОМПОНЕНТЫ WIKI

Доступ пользователей управляется двумя модулями: user. cgi и пройти. компьютерная графика Бывший

определяет, кто является участником, а последний используется для смены пароля.

Включены описания того, как работают эти модули, а также скриншоты.

в главе 9, где вопрос аутентификации пользователя обсуждается с

точка зрения администратора.

Управление участниками

Сначала мы рассмотрим пользовательский модуль, используемый администратором для определения участников.

быть разрешен доступ.

пользователь.cgi

#! /USR/бен/перл

#(c) 1999, Cunningham & Cunningham, Inc.

использовать строгий;

my $link = "[AZ][az]+([AZ][az]+)+" ;

print "Тип контента: text/html\n\n";

error("должен быть системным администратором\n")

если только $ ENV{REMOTE_USER} eq "SystemAdministrator";

Разрешить модуль только для указанного администратора.

мой $файл;

открыть (F, ".htaccess") или ошибку ("$!:

пока (<F>) {

$file = $1, если /^AuthUserFile (.*)/

.htaccess");

}

закрыть (F);

Этот код читает обычный файл веб-каталога .htaccess, который используется для ограничения

доступ к этому каталогу и его подкаталогам. В зависимости от веб-сервера

ситуации, это может быть создано скриптом или написано вручную. Файлы с префиксом точки

обычно невидим для команд оболочки (не в Windows). Как вы создаете и

изменить этот файл в зависимости от ситуации. Важной частью здесь является то, что этот файл

указывает файл, используемый для хранения имени пользователя и пароля, который

модуль будет изменяться.

мой% пар;

$par{'title'} = "Добавить или удалить пользователей";

если ($ ENV{REQUEST_METHOD} eq 'GET') {

open (F, "$flie") или error("$file: $!");

моя форма $ = "";

пока (<F>) {

следующий, если /^Системный администратор:/;


ДОПОЛНИТЕЛЬНЫЕ ДОПОЛНИТЕЛЬНЫЕ КОМПОНЕНТЫ

233

$form .= <<"EOF!" если / Λ ($ ссылка):/;

<br><input type=text name=user size=30 value=$l>

E0F1

}

$form .= <<"E0F2" х ($.<8 ? 11-$. : 3) ;

<br><input type=text name=user size=30>

EOF2

закрыть (F);