Конференция "Сети" » аутефикация на прокси [D7, WinXP]
 
  • Kav (19.01.08 13:01) [0]
    Перерыл исходники прокси-серверов, но ни в каком нет примера аутефикации пользователей
    есть ли такие исходнки или описание как это сделать
  • DVM © (19.01.08 15:11) [1]
    В заголовке запроса должно быть 'Proxy-Authorization: Basic ' + EncodeBase64(ProxyUserName + ':' + ProxyPassword)
  • Kav (19.01.08 16:22) [2]
    DVM , у меня есть прокси на него коннектятся пользователи и мне надо им либо дать интерет либо нет
    и куда мне это нужно примостить 'Proxy-Authorization: Basic ' + EncodeBase64(ProxyUserName + ':' + ProxyPassword)
  • DVM © (19.01.08 16:44) [3]

    > Kav   (19.01.08 16:22) [2]

    Ты делаешь сам прокси или клиентскую программу, которая должна работать через прокси?
  • Kav (19.01.08 17:32) [4]
    DVM,
    Делаю сам прокси :)
  • DVM © (19.01.08 18:09) [5]
    Если ты делаешь 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;

  • DVM © (19.01.08 18:10) [6]
    Причем в первом случае надо устанавливать соединение с самим сервером, а во втором с прокси сервером.
  • 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.

    А то ты сейчас в ситуации вроде: "Мужики, я не очень умею ездить, куда тут ключ зажигания вставлять?"
  • Slym © (22.01.08 10:42) [9]
    код ужасный, писал наверно сиплюсоид
    найди строку if Authenticate(MS) <> -1 и раскоментируй ее...
  • Slym © (22.01.08 10:48) [10]
    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
  • Slym © (22.01.08 13:20) [14]
  • Kav (22.01.08 16:53) [15]
    Slym
    спасибо щас буду смотреть
  • Kav (24.01.08 10:01) [16]
    А вот еще один вопрос:  можно ли  сделатьтак  что если юзер авторизировался,  его пароль держался бы пока он не завершит свой сеанс в Windows ?
  • Slym © (24.01.08 10:12) [17]
    Разобрался в моем коде?
    Kav   (24.01.08 10:01) [16]
    держался

    держался где?
    В рамках 1 сеанса браузера с сервером пароль хранится в памяти браузера... Можно поставить "галку" сохранить пароль тогда он сохраняется гдето в системе...
  • Kav (24.01.08 10:39) [18]
    Slym, чуть-чуть разобрался (просто времени свободного не было),
    У меня проблема такая компы у меня как бы общие т.е. любой сотрудник организацию за него может сеть и поработать ( и мне нужно всети статиску сколько они мегабайт затратили на интернет и на каких сайтах побывали),
    И в них есть учетная запись - читатель каждый входит в компьютер под ней
    если поставить галку сохранить пароль, то при следущем входе в систему
    он уже будет как бы введен, так что это не подходит
    P.S.  много уйдет времени если делать еще  поддержку HTTPS ?
  • Slym © (24.01.08 11:15) [19]
    готовое не проще взять? этих считалок проксей как китайцев на планете... к томуже с кэшированием... и "умным" рефрешем
    Kav   (24.01.08 10:39) [18]
    P.S.  много уйдет времени если делать еще  поддержку HTTPS ?

    15 мин... она там практически реализована...
 
Конференция "Сети" » аутефикация на прокси [D7, WinXP]
Есть новые Нет новых   [134431   +14][b:0][p:0.002]