View Single Post
Old 23-03-2008, 23:54   #1
leonapster
Member
 
Iscritto dal: Jan 2008
Messaggi: 111
[C#] Problema con autenticazione pagina HTML

Con questa funzione effettuo il login su un forum phpbb:

Codice PHP:
private string GetSource()
        {

                  
// Prepare the HttpWebRequest to send data to Amazon.com
                    
string url string.Format("http://sito.it/forum/ucp.php?mode=login");

                    
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                    
request.UserAgent "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8) Gecko/20051111 Firefox/1.5";
                    
request.Method "POST";
                    
request.Accept "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
                    
request.KeepAlive true;
                    
request.ContentType = @"application/x-www-form-urlencoded";

                    
// Send the log-in data
                    
string postData =
                        
"username=aaaaa" +
                        
"&password=bbbbbb" +
                         
"&autologin=1" +
                         
"&redirect=index.php" +
                         
"&login=Log In\"";

           
                
byte[] postBuffer System.Text.Encoding.GetEncoding(0).GetBytes(postData);
                
request.ContentLength postBuffer.Length;
                
Stream postDataStream request.GetRequestStream();

                
postDataStream.Write(postBuffer0postBuffer.Length);
                
postDataStream.Close();

                
// Get the response
                
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                
// Read the response from the stream
                
Encoding enc System.Text.Encoding.UTF8;
                
StreamReader responseStream = new StreamReader(response.GetResponseStream(), enctrue);

                
string responseHtml responseStream.ReadToEnd();
                
response.Close();
                
responseStream.Close();

                return 
responseHtml;
              
        } 
Funziona tutto correttamente, ma le successive pagine che richiedo con la seguente funzione non sono loggate.


Codice PHP:
private string ottienipagina(string url
       {
           
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
           
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
           
StreamReader responseStream = new StreamReader(response.GetResponseStream());
           
String output responseStream.ReadToEnd();
           
responseStream.Close();
           
response.Close();

           return 
output;
       } 
Come faccio quindi a mantenere attiva la sessione del login? So' che phpbb lascia un cookie, magari potrei usare quello. ma come gestire i cookie?


grazie
leonapster è offline   Rispondi citando il messaggio o parte di esso