-
Kav (19.01.08 13:01) [0]Перерыл исходники прокси-серверов, но ни в каком нет примера аутефикации пользователей
есть ли такие исходнки или описание как это сделать -
В заголовке запроса должно быть 'Proxy-Authorization: Basic ' + EncodeBase64(ProxyUserName + ':' + ProxyPassword)
-
Kav (19.01.08 16:22) [2]DVM , у меня есть прокси на него коннектятся пользователи и мне надо им либо дать интерет либо нет
и куда мне это нужно примостить 'Proxy-Authorization: Basic ' + EncodeBase64(ProxyUserName + ':' + ProxyPassword) -
> Kav (19.01.08 16:22) [2]
Ты делаешь сам прокси или клиентскую программу, которая должна работать через прокси? -
Kav (19.01.08 17:32) [4]DVM,
Делаю сам прокси :) -
Если ты делаешь HTTP прокси, то должен знать принцип его работы. Клиент делает HTTP запрос к прокси, прокси разбирает запрос и делает почти такой же, но уже от своего имени запрос к HTTP серверу.
Если нужен прокси с HTTP Basic авторизацией, то необходимым условием для работы клиента через такой прокси будет особым образом построенный HTTP запрос. В нем будут следующие изменения:
1) Вот обычный запрос безо всяких прокси, направленный непосредственно HTTP серверу:
FRequest := 'GET ' + Path + ' HTTP/' + HTTPVersion + CRLF +
'Accept: */*' + CRLF +
'Pragma: no-cache' + CRLF +
'Cache-Control: no-cache' + CRLF +
'User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Win32)' + CRLF +
'Host: ' + Host + ':' + inttostr(Port) + CRLF;
'Authorization: Basic ' + EncodeBase64(UserName + ':' + Password) + CRLF +
'Connection: Keep-Alive' + CRLFCRLF;
2) А вот так запрос будет выглядеть если он направляется проки серверу.
FRequest := 'GET http://' + Host + ':' + inttostr(Port) + Path + ' HTTP/' + HTTPVersion + CRLF +
'Accept: */*' + CRLF +
'Pragma: no-cache' + CRLF +
'Cache-Control: no-cache' + CRLF +
'User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Win32)' + CRLF +
'Host: ' + Host + ':' + inttostr(Port) + CRLF +
'Authorization: Basic ' + EncodeBase64(UserName + ':' + Password) + CRLF +
'Proxy-Authorization: Basic ' + EncodeBase64(ProxyUserName + ':' + ProxyPassword) + CRLF +
'Connection: Keep-Alive' + CRLFCRLF; -
Причем в первом случае надо устанавливать соединение с самим сервером, а во втором с прокси сервером.
-
Kav (22.01.08 10:09) [7]DVM,
я не очень сильно понимаю работу прокси сервера, я взял
исходник http://www.delphisources.ru/pages/sources/internet/2005_year/alt_http_proxy.html
и хотел его переделать под себя, но не знаю даже с какой стороны к нему подбираться
P.S. сразу скажу в Delphi я хорошо разбираюсь просто не когда не работал с сетью. -
DiamondShark © (22.01.08 10:33) [8]
> я не очень сильно понимаю работу прокси сервера
так пойми. почитай RFC.
А то ты сейчас в ситуации вроде: "Мужики, я не очень умею ездить, куда тут ключ зажигания вставлять?" -
код ужасный, писал наверно сиплюсоид
найди строку if Authenticate(MS) <> -1 и раскоментируй ее... -
Slym © (22.01.08 10:42) [9]
код ужасный
не просто ужастный, а никчемный... месиво из 3х!!! сокетных компонент -
Kav (22.01.08 10:51) [11]DiamondShark,
RFC - что такое и где взять ? вв яндексе куда-то не туда послали :)
Slym,
Окей попробую -
Kav (22.01.08 10:52) [12]>> не просто ужастный, а никчемный... месиво из 3х!!! сокетных компонент
а есть исходники попроще ? -
DiamondShark © (22.01.08 12:10) [13]
> вв яндексе куда-то не туда послали
http://www.yandex.ru/yandsearch?text=RFC+http+proxy+authentication&rpt=rad -
Kav (22.01.08 16:53) [15]Slym
спасибо щас буду смотреть -
Kav (24.01.08 10:01) [16]А вот еще один вопрос: можно ли сделатьтак что если юзер авторизировался, его пароль держался бы пока он не завершит свой сеанс в Windows ?
-
Разобрался в моем коде?
Kav (24.01.08 10:01) [16]
держался
держался где?
В рамках 1 сеанса браузера с сервером пароль хранится в памяти браузера... Можно поставить "галку" сохранить пароль тогда он сохраняется гдето в системе... -
Kav (24.01.08 10:39) [18]Slym, чуть-чуть разобрался (просто времени свободного не было),
У меня проблема такая компы у меня как бы общие т.е. любой сотрудник организацию за него может сеть и поработать ( и мне нужно всети статиску сколько они мегабайт затратили на интернет и на каких сайтах побывали),
И в них есть учетная запись - читатель каждый входит в компьютер под ней
если поставить галку сохранить пароль, то при следущем входе в систему
он уже будет как бы введен, так что это не подходит
P.S. много уйдет времени если делать еще поддержку HTTPS ? -
готовое не проще взять? этих считалок проксей как китайцев на планете... к томуже с кэшированием... и "умным" рефрешем
Kav (24.01.08 10:39) [18]
P.S. много уйдет времени если делать еще поддержку HTTPS ?
15 мин... она там практически реализована...