Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > Авторизация с помощью CGI


Автор: Alca 13.10.2008, 17:12
Авторизация с помощью CGI, использую логин и пароль.
Есть вебморда, есть CGI-скрипт (Си-шный). Надо реализовать аутентификацию.
Цитата

Каждый раз, когда пользователь запрашивает страницу с сервера, браузер автоматически отправляет куку с идентификатором сессии серверу. Сервер проверяет идентификатор по своей базе идентификаторов и, при наличии в базе такого идентификатора, «узнаёт» пользователя.

Мне не ясно как реализовать проверку идентификатора, каждый раз когда пользователь запрашивает страницу с сервера.   
Ай нид хелп!  smile 

Автор: NaDreZzz 14.10.2008, 04:44
Тоже интересно. Как вообще отправить куки с данными(например кук с названием log и значением NaDreZzz) браузера из с++ скрипта?

Автор: ptr 14.10.2008, 06:16
Цитата(Alca @  13.10.2008,  20:12 Найти цитируемый пост)
Мне не ясно как реализовать проверку идентификатора, каждый раз когда пользователь запрашивает страницу с сервера.   

В цитате, которую ты привел содержится ответ на твой вопрос. Когда пользователь авторизуется генеришь некоторый guid, этот guid отдаешь с помощью cookies пользователю, а у себя в базу сессий добавляешь этот guid и информацию о пользователе, позволяющую идентифицировать его (логин, ...).

Цитата(NaDreZzz @  14.10.2008,  07:44 Найти цитируемый пост)
Как вообще отправить куки с данными(например кук с названием log и значением NaDreZzz) браузера из с++ скрипта?

В каком направлении отправлять? От браузера серверу или от сервера браузеру?

Автор: Alca 14.10.2008, 08:44
Цитата

В каком направлении отправлять? 

От браузера серверу (при каждом посещении страниц).

Автор: ptr 14.10.2008, 15:37
Он тебе сам их отправляет автоматически. Почитайте что ли уже что такое cookies и как с ними работать.

Автор: Alca 14.10.2008, 15:51
Я в курсе, что куки идут вместе со страницей и читаются они через переменные окружения.
Когда страница загружается, то обращение к CGI-шному скрипту не происходит!!!!!
Таким образом как я могу прочитать переменные окружения,
если скрипт не запущен на выполнение?
Или я чего-то не догоняю?  smile 

Автор: NaDreZzz 14.10.2008, 16:43
$_COOKIES['log']='user';

как тоже сделать на с++ ?

Автор: REZiaMIX 14.10.2008, 16:49
Set-Cookie: NAME=value; EXPIRES=date; DOMAIN=domain_name; PATH=path; SECURE

в любом ответе клиенту

Автор: Alca 14.10.2008, 16:55
Вопрос не решен!  smile 

Автор: ptr 15.10.2008, 04:31
Alca, каждый раз, когда пользователь обращается к странице в защищенной зоне, запускается скрипт, который проверяет авторизацию с помощью cookies.

Автор: Alca 15.10.2008, 09:36
Как сделать зону защищённой, т.к. скрипт у меня не запускается автоматически?
Сервер IIS 6.0.  Хелп!  smile 

Автор: vTictor 20.10.2008, 13:21
Цитата(Alca @  14.10.2008,  08:44 Найти цитируемый пост)
От браузера серверу (при каждом посещении страниц).

Из CGI скрипта можно вызвать  getenv("HTTP_COOKIE")и получить строку типа name=value, потом вручную парсить.
Так же можно  getenv('QUERY_STRING') если Session ID передаётся в строке запроса. И опять же парсить вручную))


Автор: Alca 25.10.2008, 12:43
Хм... Тогда кто скажет в чем отличие ISAPI-фильтров от ISAPI-расширений?

Автор: J0ker 26.10.2008, 06:35
вообще в окружение они загружаются сервером, который, в свою очередь, вызывает обработчик данного запроса в этом окружении
а вообще они идут в хедере запроса (откуда и извлекаются сервером)

Автор: Voronin_Igor 8.12.2008, 16:54
Ну как разобрался я делал так там где нужна проверка пользователя там ссылка на скрипт который проверяет куки а там решешает то ли послать то ли впустить smile если еще нужно напиши мне я выложу код (гдето он у меня был smile )  

Автор: Alca 8.12.2008, 17:01
Если не трудно, выложи, пж. Посмотрю как ты делал.  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)