Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    12

    [VB.NET] applicazione

    ci riprovo per la terza volta cercando di essere il più chiaro possibile...
    allora...volevo creare un applicazione per accedere con le credenziali di login ad un sito e ricavare informazioni da una pagina....tralasciando per ora il secondo punto, per accedere al sito devo inviare con il metodo post una stringa contenente i dati per il login... e questo è il mio problema...ho trovato un codice che credevo funzionante ma non nel mio caso... il codice è il seguente:
    codice:
    Imports System 
    Imports System.IO 
    Imports System.Net 
    Imports System.Text 
    Namespace Examples.System.Net 
    Public Class WebRequestPostExample 
    Public Shared Sub Main() 
    ' Create a request using a URL that can receive a post. 
    Dim request As WebRequest = WebRequest.Create("http://www.contoso.com/PostAccepter.aspx ") 
    ' Set the Method property of the request to POST. 
    request.Method = "POST" 
    ' Create POST data and convert it to a byte array. 
    Dim postData As String = "This is a test that posts this string to a Web server." 
    Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData) 
    ' Set the ContentType property of the WebRequest. 
    request.ContentType = "application/x-www-form-urlencoded" 
    ' Set the ContentLength property of the WebRequest. 
    request.ContentLength = byteArray.Length 
    ' Get the request stream. 
    Dim dataStream As Stream = request.GetRequestStream() 
    ' Write the data to the request stream. 
    dataStream.Write(byteArray, 0, byteArray.Length) 
    ' Close the Stream object. 
    dataStream.Close() 
    ' Get the response. 
    Dim response As WebResponse = request.GetResponse() 
    ' Display the status. 
    Console.WriteLine(CType(response, HttpWebResponse).StatusDescription) 
    ' Get the stream containing content returned by the server. 
    dataStream = response.GetResponseStream() 
    ' Open the stream using a StreamReader for easy access. 
    Dim reader As New StreamReader(dataStream) 
    ' Read the content. 
    Dim responseFromServer As String = reader.ReadToEnd() 
    ' Display the content. 
    Console.WriteLine(responseFromServer) 
    ' Clean up the streams. 
    reader.Close() 
    dataStream.Close() 
    response.Close() 
    End Sub 
    End Class 
    End Namespace
    cambiando questo codice:
    codice:
    Dim request As WebRequest = WebRequest.Create("http://www.contoso.com/PostAccepter.aspx ")
    in questo:
    codice:
    Dim request As WebRequest = WebRequest.Create("http://www.miosito.it/login.asp ")
    tutto funziona...
    ma se cambio questo:
    codice:
    Dim postData As String = "This is a test that posts this string to a Web server."
    in questo:
    codice:
    Dim postData As String = "login=admin&pwd=sys"
    mi dà il seguente errore:
    WebException non è stata gestita
    Errore del server remoto: (404) Non trovato.
    nella seguente stringa di codice:
    codice:
    Dim response As WebResponse = request.GetResponse()
    La mia domanda è: il codice che ho trovato fà al caso mio? e se si... come posso utilizzarlo?
    spero di essere stato abbastanza chiaro.. Grazie

  2. #2
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Ciao ponkio90,
    il problema è che per fare quello che vuoi tu, è necessario saper programmare... con questo non voglio dire che tu non lo sappia fare, non potrei saperlo, ma il fatto che parli di codice "trovato" e chiedi a noi se fa al caso tuo, non depone certo a tuo favore... ti dico questo perchè comunque programmare non vuol dire copiare il codice, ma significa anche capirlo per intervenire dove serve.

    nel tuo caso l'errore "(404) Non trovato" è già abbastanza chiaro... non trovato, ma, a riprova di ciò che ti ho scritto sopra, bisognerebbe approfondire bene alcuni aspetti, infatti il 404 nella maggior parte delle volte si sta sbagliando indirizzo, ma a volte possono esserci altri problemi, ad esempio una pagina personalizzata che maschera un errore o un accesso negato o tanti altri casi differenti.

    credo che nessuno ti potrà mai dire se fa al caso tuo (tranne un piazzista che cerca di verdere!) se non si conosce BENE il tuo caso e non solo "la tua meta". Ad esempio non hai nemmeno specificato se il sito è tuo, se ha sistemi di protezione CONTRO I BRUTE FORCE che possono magari interferire a delle richieste legittime, quali sono i campi che accolgono le richieste post. insomma un pò tutto quello che è bene sapare per programmare un'applicazione come la vuoi tu.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    12
    innanzitutto grazie per la risposta
    hai ragione...è da poco che ho incominciato a programmare in questo linguaggio e sto ancora capendo come funziona... comunque il sito non è mio... volevo fare un programma per loggarmi e ricavare dati da una pagina...non penso abbia dei sistemi anti-bruteforce ho usato diversi programmi per verificarlo (se ne avete altri da consigliarmi, ben venga )...comunque riguardo all' errore non capisco perchè se lascio questo:
    codice:
    Dim postData As String = "This is a test that posts this string to a Web server."
    funziona e se cambio:
    codice:
    Dim postData As String = "login=admin&pwd=sys"
    non funziona più... attendo risposte

  4. #4
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Ciao, vista così si direbbe che magari dopo il login vieni reindirizzato ad un'altra pagina, che ad esempio potrebbe essere un reindirizzamento alla pagina di provenienza, che nel tuo caso non c'è... oppure tenta di assegnarti dei cookies e non hai il contenitore (almeno non mi è sembrato di vederlo nel tuo codice) dalla quale tenta di leggere il nome della pagina di redirect, o comunque qualcosa del genere... a volte viene gestito così... analizza bene il flusso di richiesta e risposta del sito web, magari utilizza fiddler e vedi ciò che accade durante le richieste e le risposte.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    12
    si...sono veramente un nabbo grazie al programma che mi hai consigliato sono riuscito a capire che manda quella stringa in POST ad un altro link che reindirizza alla pagina di provenienza e poi assegna dei cookie... come si crea un contenitore per i cookie? conosco questo codice:
    codice:
    Dim cookieContainer As New CookieContainer()
    ma poi non sò come agganciarlo al mio codice... aiutatemi!

  6. #6
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    usa il tipo HttpWebRequest al posto di WebRequest, per capirci :
    codice:
    Dim request As HttpWebRequest = HttpWebRequest.Create("http://www.contoso.com/PostAccepter.aspx ")
    troverai una proprietà che si chiama "CookieContainer", li potrai assegnare il container che preferisci :
    codice:
    Dim cookieContainer As New CookieContainer()
    request.CookieContainer = cookieContainer

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    12
    ok... e per il reindirizzamento?

  8. #8
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    prova con
    codice:
    request.Referer = "TuoIndirizzo"

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    12
    Grazie! Sei veramente gentile! login effettuato!

  10. #10
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Originariamente inviato da ponkio90
    Grazie! Sei veramente gentile! login effettuato!
    Figurati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.