C# i panel logowania www

0

witam
chcę za pomocą aplikacji w C# dostać się do pliku xml
niestety dostęp uzyskuję dopiero po zalogowaniu się na stronie (jest to jedyna metoda)
w związku z tym muszę wysłać zapytanie z konkretnymi wartościami dla pól formularza logowania
problem w tym że zielonego pojęcia nie mam jak się za to zabrać :(
W związku z tym prosił bym najlepiej o jakiś dobry link (kawałki kodu też mile widziane ^^ )bo widocznie źle szukam :|
Pozdrawiam i wielkie dzięki za pomoc

0

System.Net i HttpWebRequest i HttpWebResponse i można próbować wysłać dane logowania i się zalogować.

0

no to wyskrobałem coś takiego :

        Uri uri = new Uri("http://mojastronka/login.php");
        WebClient client = new WebClient();

        NameValueCollection collection = new NameValueCollection();

        collection.Add("login", "user");
        collection.Add("pass", "qaz123");

        webBrowser.Document.Body.InnerHtml += uri.AbsoluteUri;

        byte[] responseArray = client.UploadValues(uri.AbsoluteUri, "POST", collection);

        webBrowser.Document.Body.InnerHtml += Encoding.ASCII.GetString(responseArray);

tylko że nadal nie loguje się , czy powinienem jeszcze uwzględnić ciasteczka ?

0

yes, indeed

0

niestety , pojawił się dość spory problem, id pól jest dynamiczne
Domyślam się że NIE MA sposobu aby to obejść ?

0

Jezeli formularz zawsze wyglada tak samo/podobnie i tylko id sie zmieniaja, to mozesz uzyc wyrazen regularnych, zeby uzyskac konkretne id.

0

tzn: polaczyc sie ot tak, sciagnac strone, zapisac cookiesy ktore dostaniesz, sparsowac regexpami w poszukiwaniu ID owych pol, wyslac httprequesta z danymi, identyfikatorami i cookiesami. i powinno byc ok. pamietaj o cookiesach - bez nich za kazdym httprequestem serwer bedzie najprawdopodobniej generowac nowe identyfikatory pol

0

wystarczy odświeżyć stronę aby id zostało zmienione,
więc wydaje mi się że jeżeli pobiorę kod formularza aby dostać nowe id, to jak będę wysyłać zapytanie z konkretnymi wartościami dla pól , to te pola dostaną już nowe id

(no chyba że źle mi się wydaje ^^ )

0

Nie moga dostac nowych id, bo aplikacja odbierajaca formularz tez skads musi wiedziec co przyszlo.

0

spradz w Twojej przegladarce czy przyjmujesz cookiesy od tej strony -- moze wlasnie przegladarka ich nie przyjmuje i stad taki efekt obserwujesz

druga rzecz: strona MOZE za kazdym razem generowac NOWE, LOSOWE id w obu polach -- i bedzie wiedziala ze te ktore jej wysylasz sa poprawne, lopatologiczne przyklady takich mechanizmow:

idpola1 = losowa liczba np. dwucyfrowa = "33"
idpola2 = "mama66tata99_132" -- chyba widac sposob generowania id2 i sprawdzania czy id1-id2 sa poprawne

albo
idpola1 = "53267535" -- przypadek ten sam. ale tutaj program ukryl podstawe "33" w smieciach i do obliczenia idpola2
idpola2 = "mama66tata99_132" -- uzywa sklejenia drugiej i przed ostatniej cyfry idpola1 = 33

albo
idpola1 = "5445" -- przypadek ten sam. ale tutaj program ukryl podstawe "33" w odwracalnym przeksztalceniu
idpola2 = "mama66tata99_132" -- matematycznym id1=(33^2)*5 i do obliczenia wartosci id2 uzywa pierwiastek(idpola1 / 5) == 33

albo
idpola1 = "5445" -- id1 = ( 33 2)*5 ==> (5445/5)0.5 = 33
idpola2 = "5041" -- id2 = ( 33 *2+5)2 ==> (50410.5-5)/2 = 33

ostatni przypadek wyglada calkiem ok, co nie? dla innych wylosowanych podstaw:

idpola1 = "1805" -- id1 = ( 19 ^2)*5
idpola2 = "1849" -- id2 = ( 19 *2+5)^2

idpola1 = "10125" -- id1 = ( 45 ^2)*5
idpola2 = "9025" -- id2 = ( 45 *2+5)^2

ale to sa czesto zle mechanizmy, poniewaz raz przechwycona para id1-id2 moze byc uzywana i uzywana i uzywana.. chyba ze bezdiesz w specjalny sposob generowac owe podstawy (u nas - 33) np. na podstawie daty.. ale to juz inne bajki

0

Mi chodzilo o co innego.

Aplikacja generuje strone i przy okazji nadaje id polom, chocby i losowe. Gdzies sobie te id zapisuje, po czym gdy otrzymuje formularz po wyslaniu to sobie sprawdza jakie w tej sesji byly id wylosowane.

Natomiast przy kazdym wyswietleniu strony losowane sa nowe, wiec jak najbardziej moga byc zmieniane.

Jezeli wiec odbierzesz 'wyswietlona' strone, odczytasz id i wyslesz formularz to aplikacja odbierajaca powinna wiedziec o co chodzi, zakladajac oczywiscie, ze wie, ze dla ciebie je przed chwila wygenerowala (np. po ciastkach, czy sesji)

0

ee no.. wiem dokladnie o co Ci chodzilo, przeciez o tym samym psalem w drugim swoim poscie :) napisalem teraz tylko, ze strona tak naprawde nie musi wcale zapamietywac tych identyfikatorow, pod warunkiem ze sa wzajemnie zalezne i weryfikowalne jako zestaw

0

Aaaa, no w tym sensie to nie musi zapamietywac. Chyba nie zrozumialem poprzedniego posta :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1