![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
аутефикация на прокси [D7, WinXP]
Kav © (2008-01-19 13:01:00)Перерыл исходники прокси-серверов, но ни в каком нет примера аутефикации пользователей
есть ли такие исходнки или описание как это сделать
Slym (2008-01-24 11:40:00) [41]
try
FRemoteSocket.Open(RemoteHost,'','',RemotePort);
if AnsiStartsText('CONNECT', Query.Strings[0]) then
begin
ClientSocket.SendLn('HTTP/1.0 100 Continue');
ClientSocket.SendLn('');
end else
begin
for i:=0 to Query.Count-1 do
begin
if not FRemoteSocket.Connected then break;
if Query.ValueFromIndex[i]='' then Continue;
FRemoteSocket.SendLn(Query.Strings[i]);
end;
FRemoteSocket.SendLn('');
end;
DoTunneling(ClientSocket,FRemoteSocket);
finally
FRemoteSocket.Close;
end;
Slym (2008-01-24 11:15:00) [42]готовое не проще взять? этих считалок проксей как китайцев на планете... к томуже с кэшированием... и "умным" рефрешем
Kav (24.01.08 10:39) [18]
P.S. много уйдет времени если делать еще поддержку HTTPS ?
15 мин... она там практически реализована...
Kav (2008-01-24 10:39:00) [43]Slym, чуть-чуть разобрался (просто времени свободного не было),
У меня проблема такая компы у меня как бы общие т.е. любой сотрудник организацию за него может сеть и поработать ( и мне нужно всети статиску сколько они мегабайт затратили на интернет и на каких сайтах побывали),
И в них есть учетная запись - читатель каждый входит в компьютер под ней
если поставить галку сохранить пароль, то при следущем входе в систему
он уже будет как бы введен, так что это не подходит
P.S. много уйдет времени если делать еще поддержку HTTPS ?
Slym (2008-01-24 10:12:00) [44]Разобрался в моем коде?
Kav (24.01.08 10:01) [16]
держался
держался где?
В рамках 1 сеанса браузера с сервером пароль хранится в памяти браузера... Можно поставить "галку" сохранить пароль тогда он сохраняется гдето в системе...
Kav (2008-01-24 10:01:00) [45]А вот еще один вопрос: можно ли сделатьтак что если юзер авторизировался, его пароль держался бы пока он не завершит свой сеанс в Windows ?
Kav (2008-01-22 16:53:00) [46]Slym
спасибо щас буду смотреть
Slym (2008-01-22 13:20:00) [47]Дарю http://ifolder.ru/5054357
DiamondShark (2008-01-22 12:10:00) [48]
> вв яндексе куда-то не туда послали
http://www.yandex.ru/yandsearch?text=RFC+http+proxy+authentication&rpt=rad
Kav (2008-01-22 10:52:00) [49]>> не просто ужастный, а никчемный... месиво из 3х!!! сокетных компонент
а есть исходники попроще ?
Kav (2008-01-22 10:51:00) [50]DiamondShark,
RFC - что такое и где взять ? вв яндексе куда-то не туда послали :)
Slym,
Окей попробую
Slym (2008-01-22 10:48:00) [51]Slym © (22.01.08 10:42) [9]
код ужасный
не просто ужастный, а никчемный... месиво из 3х!!! сокетных компонент
Slym (2008-01-22 10:42:00) [52]код ужасный, писал наверно сиплюсоид
найди строку if Authenticate(MS) <> -1 и раскоментируй ее...
DiamondShark (2008-01-22 10:33:00) [53]
> я не очень сильно понимаю работу прокси сервера
так пойми. почитай RFC.
А то ты сейчас в ситуации вроде: "Мужики, я не очень умею ездить, куда тут ключ зажигания вставлять?"
Kav (2008-01-22 10:09:00) [54]DVM,
я не очень сильно понимаю работу прокси сервера, я взял
исходник http://www.delphisources.ru/pages/sources/internet/2005_year/alt_http_proxy.html
и хотел его переделать под себя, но не знаю даже с какой стороны к нему подбираться
P.S. сразу скажу в Delphi я хорошо разбираюсь просто не когда не работал с сетью.
DVM (2008-01-19 18:10:00) [55]Причем в первом случае надо устанавливать соединение с самим сервером, а во втором с прокси сервером.
DVM (2008-01-19 18:09:00) [56]Если ты делаешь 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 (2008-01-19 17:32:00) [57]DVM,
Делаю сам прокси :)
DVM (2008-01-19 16:44:00) [58]
> Kav (19.01.08 16:22) [2]
Ты делаешь сам прокси или клиентскую программу, которая должна работать через прокси?
Kav (2008-01-19 16:22:00) [59]DVM , у меня есть прокси на него коннектятся пользователи и мне надо им либо дать интерет либо нет
и куда мне это нужно примостить 'Proxy-Authorization: Basic ' + EncodeBase64(ProxyUserName + ':' + ProxyPassword)
DVM (2008-01-19 15:11:00) [60]В заголовке запроса должно быть 'Proxy-Authorization: Basic ' + EncodeBase64(ProxyUserName + ':' + ProxyPassword)