Конференция "Сети" » Как определить программно залогинился ли я на каком либо сайте [D7]
 
  • Muh (18.08.08 13:07) [0]
    Суть в следующем.
    Программе надо понять, залогинился я допустим на этом сайте или нет..и если залогинился, то надо скачать определенный файл.
    Раньше я пользовался процедурой, приведенной ниже, но программа понимала только, когда я логинился в Internet Explorer, если же я логинился в остальных прога не понимала... а с приходом Vista теперь и в Эксплорере не понимает :(
    подскажите, что можно сделать..
    надеюсь изложил понятно, спасибо

    function DownloadFile(const FileURL, FileName: String): Cardinal;
    var
     hSession, hFile: HInternet;
     Buffer: array[1..1024] of Byte;
     BufferLen, fSize: LongWord;
     f: File;
    begin
     Result := 0;
     hSession := InternetOpen('STEROID Download',
                              INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
     if Assigned(hSession) then begin
       hFile := InternetOpenURL(hSession, PChar(FileURL), nil, 0,
                                INTERNET_FLAG_RELOAD, 0);
       if Assigned(hFile) then begin
         AssignFile(f, FileName);
         Rewrite(f,1);
         fSize := 0;
         repeat
           InternetReadFile(hFile, @Buffer, SizeOf(Buffer), BufferLen);
           BlockWrite(f, Buffer, BufferLen);
           fSize := fSize + BufferLen;
         until (BufferLen = 0);
         CloseFile(f);
         Result := fSize;
         InternetCloseHandle(hFile);
       end else begin
           MessageDlg('Не могу скачать файл! Проверьте соединение с Internet', mtCustom,[mbYes], 1);
           Form1.Close;
       end;
       InternetCloseHandle(hSession);
     end
    end;
  • Muh (18.08.08 13:11) [1]
    короче главноая суть впринципе в том, что бы скачать файл..но его можно скачать, если только залогиниллся на определенном сайте..
  • clickmaker © (18.08.08 15:07) [2]
    InternetConnect()?
  • Muh (18.08.08 15:13) [3]
    а по конкретнее пожалуйста...
    а то я не очень хороший программер)
  • Rouse_ © (18.08.08 16:00) [4]
    В приведенной тобой функции нет ни намека на какой либо логин на удаленный ресурс. Или ты подразумеваешь: залогинился = соединился?
  • DiamondShark © (18.08.08 16:18) [5]
    Удалено модератором
    Примечание: Еще раз и по русски...
  • Muh (18.08.08 17:21) [6]
    ну как бы я вхожу на сайт..и авторизируюсь..после этого запускаю программу..и с помощью этой функцией можно скачивать файл.. то есть как я понял пароль и логин берется берется из кукисов ..я плохо к сожалению в этом разбираюсь.
    но к сожалению только, если я до этого логинился в эксплорере..с другими браузерами такое не работает
  • grisme © (18.08.08 17:51) [7]
    дык, другие браузеры свои кукисы хранят в отличном, от осла, месте.
  • Muh (18.08.08 18:03) [8]
    ну вот в этом и проблема..ранее был один недостаток.. не получалось использовать программу с отличными от экплорера браузерами. А теперь с появлением Висты... и в эксплорере не работает эта функция..
    подскажие как еще можно файл скачать?
  • DiamondShark © (19.08.08 15:49) [9]

    > подскажие как еще можно файл скачать?

    Эмулировать действия браузера, вестимо.
    Сначала послать данные формы, запомнить куки (т.е. сделать то, что делает браузер, когда ты "логинишся"), потом послать запрос на файл.
  • Muh (19.08.08 16:33) [10]
    как это сделать, подскажите, пожалуйста
  • clickmaker © (19.08.08 16:44) [11]
    > [10] Muh   (19.08.08 16:33)

    [2]
  • Muh (19.08.08 16:45) [12]
    это объяснение?
  • Muh (20.08.08 05:51) [13]
    ребят, ну подскажите как делать, очень важно
  • Muh (20.08.08 15:47) [14]
    каких пустых? народ, реальна помощь нужна
  • Dennis I. Komarov © (20.08.08 17:06) [15]
    > [14] Muh   (20.08.08 15:47)

    Справку или MDSN уже проштудировал?
  • Muh (20.08.08 18:24) [16]
    что такое mdsn я не знаю..по справке ничего не нашел :(
  • blackman © (20.08.08 20:31) [17]
    Как програмно ввести логин и пароль и перейти на следующую страницу
    http://articles.org.ru/cn/showdetail.php?cid=6277
    И посмотри остальное
    Delphi/Pascal » Интернет, сети
    http://articles.org.ru/cn/?c=27
  • Muh (20.08.08 21:23) [18]
    спасибо
    но в этом примере надо знать логин и пароль..а хотелось бы чтобы без ввода ..чтобы все было автоматически..
  • Muh (20.08.08 21:57) [19]
    нет, блин, ничего нет(
  • Cobalt (21.08.08 08:06) [20]
    Посмотри компонент TWebBrowser, он, если не ошибаюсь, содержит IE, т.е. использует указанные в нем логин/пароль
  • Cobalt (21.08.08 08:10) [21]
    Или смотри в сторону плагинов к IE/Netscape, последние кажется даже в Опере и Мозилле поддерживаются.
  • Dennis I. Komarov © (21.08.08 09:21) [22]
    > [16] Muh   (20.08.08 18:24)

    help -> Windows SDK
    OR
    http://msdn.microsoft.com/

    PS Там очипятался немного...
  • Muh (22.08.08 14:22) [23]
    блин, ничего не почается
  • Muh (25.08.08 00:37) [24]
    надо разобраться с кукисами..но чего то не получается
  • Muh (26.08.08 17:50) [25]
    да блин..очень помогли
  • Rouse_ © (26.08.08 18:04) [26]

    > надо разобраться с кукисами..

    Не разберешься ты с ними, т.к. это обычный текстовый файл и каждый разработчик форума/сайта хранит в нем только одному ему известную информацию. Никакого стандарта как такового на куки нет.
  • clickmaker © (26.08.08 18:09) [27]
    так, а InternetConnect() все же не помог?
  • Dennis I. Komarov © (26.08.08 18:47) [28]
    > [27] clickmaker ©   (26.08.08 18:09)

    А он смотрел? Он кода ждет...
  • Muh (27.08.08 00:54) [29]
    зачем же так ..я не только кода жду..я и сам смотрел..но мне не хватает знаний к сожалению :(
  • Dennis I. Komarov © (27.08.08 09:52) [30]
    > [29] Muh   (27.08.08 00:54)

    Чего смотрел, как применял полученые знания, т.е. какие попытки были...
    За тебя тут никто твой код писать не будет, поэтому переходи к практическим занятиям с конкретными проблемами
  • DiamondShark © (27.08.08 16:29) [31]

    > Muh   (27.08.08 00:54) [29]
    > зачем же так ..я не только кода жду..я и сам смотрел..но
    > мне не хватает знаний к сожалению :(

    Тогда рассказывай подробнее о проблеме.
    Можешь начать с описания того, что ты понимаешь под "залогинился на сайте".
  • Muh (28.08.08 02:00) [32]
    ну описание простое..допустим есть сайт..на котором неавторизируемые пользователи не могут качать файлы..для того чтобы скачать файл..надо ввести логин и пароль..и тогда файл будет доступен.
    так вот в программе я хочу это реализовать, чтобы с помощью нее можно было скачать файл...прога должна понять..что я уже авторизован на сайте..допустим до этого я ввел пароль с логином в мозиле..и нажал кнопочку сохранить..
  • DiamondShark © (29.08.08 13:04) [33]

    > надо ввести логин и пароль..

    Куда ввести-то?

    Если это стандартная http аутентификация, то см. clickmaker ©   (18.08.08 15:07) [2]

    Если это формочка на сайте, то тут общего метода нет, анализируй код страницы авторизации и эмулируй действия браузера -- посылка данных формы, получение ответа, куки.
  • Muh (31.08.08 07:07) [34]
    пароль надо ввести на сайте обычная авторизация..но это надо делать не программно...я заранее введу их..а прога должна понять это далее...
    очень легко у вас получается говорит..анализируй эмулируй..если б я еще чего нибудь понимал..как это делать)
  • Dennis I. Komarov © (31.08.08 12:30) [35]
    Это что же у тебя получается...
    Живет юзер, логинится на "своем" каком-то сайте и т.д. и т.п.
    Ты, подсунул ему свою прогу, и качаешь под его аккаунтом? :)
    Так дело не пойдет.....

    А кто вообще мешает проводить аунтификацию из своей проги? И куки чужие можно отправить лесом...
  • Muh (31.08.08 17:32) [36]
    я подсунул прогу? чего за бред? я ему дал прогу!! разные вещи мне кажется... он качает файл, который предоставляется сайтом лично ему...так как он раньше логинился на этом сайте прога должна понять..и скачать ему этотй файл.
    аутификация из проги это плохо..меня как раз будут подозревать в краже паролей !!
  • Медвежонок Пятачок © (01.09.08 12:34) [37]
    Бред какой-то.
    "Определить залогинился ли я"
    Файл качается - залогинился. Не качается - не залогинился.
    Либо вообще аккаунт протух, хотя ты и залогинился вчера и кук у тебя есть.
  • Muh (01.09.08 13:13) [38]
    нет не бред..ранее все получалось, но только в эксплорере..я логинился в эксплорере..и прога понимала, что я залогинен и качала файл...а в висте щас такого не происходит..с куками что то другое (
  • Медвежонок Пятачок © (01.09.08 13:52) [39]
    именно с куками. единственный способ другой проге использовать авторизацию, выполненную ие. Ну если не считать телепатию.
  • DiamondShark © (02.09.08 12:46) [40]

    > ранее все получалось, но только в эксплорере..я логинился
    > в эксплорере..и прога понимала, что я залогинен и качала
    > файл...

    Это была дырка в безопасности WinInet. Теперь её залатали. Смирись.

    Для тебя остаётся два пути:
    1. логин из программы.
    Плюсы: независимость от браузеров. Минусы: дополнительные телодвижения пользователя.
    2. оформить программу как плагин к браузеру.
    Плюсы: удобство пользователя. Минусы: зависимость от браузера, много сложного кода.
  • Muh (08.09.08 21:32) [41]
    плохо(
 
Конференция "Сети" » Как определить программно залогинился ли я на каком либо сайте [D7]
Есть новые Нет новых   [134432   +19][b:0][p:0.001]