Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Login senza webbrowser
Forum - C# / VB.NET - Login senza webbrowser

Avatar
Question (Normal User)
Rookie


Messaggi: 58
Iscritto: 14/12/2010

Segnala al moderatore
Postato alle 16:05
Martedì, 14/12/2010
Ciao a tutti ragazzi,
premetto che sono nuovo del vb.net e che sto leggendo la vostra guida,quello che stavo cercando di fare è piuttosto semplice:
effettuare il login ad un sito web da vb.net e poi vedere il sorgente di un'altra pagina accessibile solo ai loggati.

Il sito mi permette di fare il login da url (es. http://www.sito.com/login.php?&username=Question&password=123) solo che se provo a visitarlo ad esempio con l'oggetto webclient non mi fà entrare(penso perché non accetta i cookies o qualcosa del genere); come posso fare senza usare un webbrowser?

Volevo precisare che nel vecchio vb6 riuscivo a farcela grazie ad una serie di dll,ma che qui non so proprio come muovermi :-|


Ma ovviamente x64
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Up
1
Down
V
Segnala al moderatore
Postato alle 17:16
Martedì, 14/12/2010
devi capire come e dove il sito memorizza le informazioni di avvenuto login: querystring, cookie, hidden field, etc...

partendo da questo puoi replicare queste informazioni nella seconda webrequest in modo da mostrare al webserver che sei ancora tu :)


Ingegnere Informatico
https://ldlagency.it
PM
Avatar
Question (Normal User)
Rookie


Messaggi: 58
Iscritto: 14/12/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 20:31
Martedì, 14/12/2010
mi puoi fare un esempio? >_>


Ma ovviamente x64
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Up
0
Down
V
Segnala al moderatore
Postato alle 22:35
Martedì, 14/12/2010
Testo quotato

Postato originariamente da Question:

mi puoi fare un esempio? >_>



esempio banale sarebbe aggiungere alla seconda webrequest un cookie creato dalla prima come conseguenza del login :)


Ingegnere Informatico
https://ldlagency.it
PM
Avatar
Question (Normal User)
Rookie


Messaggi: 58
Iscritto: 14/12/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 23:37
Martedì, 14/12/2010
Grazie delle risposte ma sin qua avevo capito, non ho proprio idea della sintassi per fare quello che dici tu :rotfl:
Qualche link guida? Qualche esempio di codice già scritto? Qualsiasi cosa mi sarebbe d'aiuto,su google non riesco a trovare niente e attualmente non ho un libro sul vb.net (ma non penso ci sia la soluzione)

Il webbrowser è fattibile,però lo vedo proprio come ultima spiaggia data la pesantezza della procedura :yup:

Ultima modifica effettuata da Question il 14/12/2010 alle 23:39


Ma ovviamente x64
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Up
0
Down
V
Segnala al moderatore
Postato alle 23:41
Martedì, 14/12/2010
Testo quotato

Postato originariamente da Question:

Grazie delle risposte ma sin qua avevo capito, non ho proprio idea della sintassi per fare quello che dici tu :rotfl:
Qualche link guida? Qualche esempio di codice già scritto? Qualsiasi cosa mi sarebbe d'aiuto,su google non riesco a trovare niente e attualmente non ho un libro sul vb.net (ma non penso ci sia la soluzione)

Il webbrowser è fattibile,però lo vedo proprio come ultima spiaggia data la pesantezza della procedura :yup:


Ultima modifica effettuata da HeDo il 14/12/2010 alle 23:42


Ingegnere Informatico
https://ldlagency.it
PM
Avatar
Question (Normal User)
Rookie


Messaggi: 58
Iscritto: 14/12/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 19:00
Mercoledì, 15/12/2010
Allora ho letto e riletto quei link,penso che si debba scrivere una procedura del genere:
Codice sorgente - presumibilmente VB.NET

  1. Imports System.net
  2.  
  3. 'c'è la classe e tutto il resto [...]
  4.  
  5. Private sub Procedura()
  6. dim hRequest as httpWebRequest= DirectCast(webRequest.create("http://www.sito.com/login?=&username=Question&password=123),httpWebRequest)
  7. hRequest.CookieContainer = New CookieContainer()
  8. request.CookieContainer.Add(New Uri("http://sito.com"), New Cookie("NOME_COOKIE", "VALORE_COOKIE"))
  9.  
  10. 'qui inserisco il resto della routine per ottenere il sorgente della pagina con httpRequest[...]
  11. End Sub



Ecco però avrei delle domande:
1)come mai sono costretto ad usare DirectCast ed ad effettuare una conversione?
2)se il sito dove faccio il login assegna un valore random al cookie come posso fare? Tra i vari sorgenti che ho letto mi pare d'aver capito che devo usare l'httpWebResponse
3)In particolare ho trovato un link ad una domanda in un forum con il mio stesso problema,dando una letta al codice postato mi sembrava tutto ok (data anche la risposta che in teoria "avrebbe illuminato" il creatore del topic ma che a me non dice niente)
http://www.vbdotnetforums.com/net-sockets/28191-httpwebreq ...'>http://http://www.vbdotnetforums.com/net-sockets/28191-htt ... <---

Aiuto :hail:


EDIT
Ma ce la fà il foro ad accettarmi un ipertestuale senza incasinarmelo? :/ [_url] sito [*url] (al posto di * un / e al posto di _ uno spazio) non funge,[url=sito]nome [*url] non funge,il sito scritto senza tag non funge, e che cavolo xD

Ultima modifica effettuata da Question il 15/12/2010 alle 19:38


Ma ovviamente x64
PM