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


Автор: grofast 21.8.2012, 12:12
Добрый день.Помогите те кто знает.
Мне нужен самописный прокси сервер с авторизацией.
Я использую IdHTTPProxyServer.

В процедуре TForm1.IdHTTPProxyServer1Connect(AContext: TIdContext);

Пишу

  LHeaders := TIdHeaderList.Create(QuoteHTTP);
  AContext.Connection.IOHandler.Capture(LHeaders,'');
  Host:=LHeaders.Values['Host'];
  Avtorizacya:=LHeaders.Values['Authorization'];

   
//Также можно прочитать все заголовки строчками
//Zapros := AContext.Connection.IOHandler.ReadLn(enUTF8);



   //If EstAvtorizaciya Then
   If Avtorizacya='' Then
  Begin

   EstAvtorizaciya:=True;

        Otvet := 'HTTP/1.1 401 Unauthorized'#13#10 +
      'Server: squid/2.5.STABLE3'#13#10 + 'Mime-Version: 1.0'#13#10 +
          'Content-Type: text/html'#13#10 + 'Content-Length: 20'#13#10 +
          'WWW-Authenticate: Basic realm="Test"'#13#10 +
          'Connection: close'#13#10#13#10;

        AContext.Connection.IOHandler.WriteLn(Otvet, enUTF8);
        Abort;
        Exit;
      End;


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


Я его проверяю и пропускаю клиента и дальше IdHTTPProxyServer должен выбать клиенту запрашиваемую страницу в виде html

Но он ничего не выдает как я понял я в IdHTTPProxyServer1Connect из сокета забираю заголовки и сокет остается пустой
дальше IdHTTPProxyServer пытается выполнить запрос а он пустой.И получается что выполнять не чего.



Первый вопрос возможно ли как то из сокета скопировать данные не забирая их?
Второй вопрос я правильно понимаю принцип авторизации или мне нужно по другому реализовывать авторизацию.


Есть еще вариант бросить на форму http клиента и его заставить вернуть код запрашиваемой страницы а потом передать ее браузеру но по моему это изврат.


Самый главный вопрос возможно ли как то из сокета скопировать данные не забирая их?

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