Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2014, 03:27   #1
Cantinier
 
Регистрация: 03.03.2014
Сообщений: 5
Вопрос Проблема авторизации.

Здравствуйте, уважаемые форумчане. Столкнулся с проблемой авторизации в одном чате.
Чат является клиентным. После 5 попыток-капча. Но нашел на сайте способ без капчи.
Так как форма входа убрана с сайта, авторизацию пришлось проводить на кэшированной гуглом странице
Тем не менее вход "вручную" прекрасно работает.

В программе же при вводе неверного пароля элемент Label просто меняет текст. При вводе верного-вылетает ошибка HTTP 1.1 405 Method not allowed

Все что необходимо (исходник, логи и программу работы с ним, а так же логин и пасс для тестирования работоспособности) вы можете найти в архиве. На сайт почему то не заливает.
Всем заранее огромнейшее спасибо!!!
Скрин:

Cantinier вне форума Ответить с цитированием
Старый 03.03.2014, 09:05   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Попробуй вместо POST использовать GET.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.03.2014, 21:17   #3
Cantinier
 
Регистрация: 03.03.2014
Сообщений: 5
По умолчанию

Не получается. Не могу понять как обработать куки и отправить их на редирект
Cantinier вне форума Ответить с цитированием
Старый 28.03.2014, 15:49   #4
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

Цитата:
Сообщение от Cantinier Посмотреть сообщение
Не получается. Не могу понять как обработать куки и отправить их на редирект
Ну ты даешь! у тебя даже кода нет для получения куков и редиректа, как ты собрался их получать если у тебя нет не одно idhttp1.request
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Старый 28.03.2014, 22:53   #5
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

В твоем архиве были логи снифера не уже ли там не видно, что там идет post запрос, а потом редирект на GET.

Лови код надо внимательно смотреть запрос. мало того при Post надо обязательно заполнять HTTP.Request так как куки проверяются сервером.

Цитата:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, IdCookieManager;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
IdHTTP1: TIdHTTP;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure HTTPRedirect(Sender: TObject; var dest: string;
var NumRedirect: Integer; var Handled: Boolean; var VMethod: string);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
HTTP: TIdHTTP;
Cook :TidCookieManager;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
StrPage,ssylka:string;
log:TstringList;
begin
Memo1.Clear;
HTTP:=TIdHTTP.Create(self);
HTTP.OnRedirect :=Form1.HTTPRedirect;
Cook:=TidCookieManager.Create(HTTP) ;
HTTP.AllowCookies:=true;
HTTP.CookieManager:=Cook;
HTTP.HandleRedirects:=true;
HTTP.Get('http://app.drugvokrug.ru/index.htm');
HTTP.Request.Host:='app.drugvokrug. ru';
HTTP.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
HTTP.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36';
HTTP.Request.AcceptLanguage:='ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3';
HTTP.Request.Referer:='http://webcache.googleusercontent.com/search?q=cache:5Pld2sNrh5YJ:app.dru gvokrug.ru/picture.htm+&cd=1&hl=ru&ct=clnk&gl= ru';
HTTP.Request.Connection:='keep-alive';
HTTP.Request.ContentType:='applicat ion/x-www-form-urlencoded';
ssylka:='http://app.drugvokrug.ru/j_spring_security_check';
Memo1.Text:=ssylka;
log:=TstringList.Create;
log.Add('j_username='+Edit1.Text);
log.Add('j_password='+Edit2.Text);
StrPage:=HTTP.Post(ssylka,log);
if pos ('logout',StrPage) <>0 then
Label1.Caption:='Успешно'
else
Label1.Caption:='Неудача';
log.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Label1.Caption:='Результат...';
end;

procedure TForm1.HTTPRedirect(Sender: TObject; var dest: string;
var NumRedirect: Integer; var Handled: Boolean; var VMethod: string); // переадресация для пост трекер
begin
VMethod:='GET'
end;

end.
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
По теме авторизации panda88 Работа с сетью в Delphi 11 28.08.2013 20:43
[PHP] Проблема при авторизации Krasi Помощь студентам 9 29.02.2012 15:09
Куки в авторизации bloger PHP 9 21.11.2009 01:18
Проблема авторизации на сайте Terikon Работа с сетью в Delphi 0 17.03.2009 16:50