Hoi,
Ik probeer voor mijn programma op een website in te loggen en dan de content van de webpagina te bekijken.
Ik heb er alleen een paar probleempjes mee.
1. Als ik probeer in te loggen krijg ik een messebox dat het gelukt is.
2. Als ik de content van een webpagina ga bekijken zegt hij dat hij niet is ingelogd.
3. Als ik kijk in de (website) database staat er ook dat ik niet ben ingelogd.
(Op de login pagina op de website worden de sessies aangemaakt).
Hier mijn codes:
Ziet iemand toevallig wat ik verkeerd heb, en kan verbeteren?
Ik probeer voor mijn programma op een website in te loggen en dan de content van de webpagina te bekijken.
Ik heb er alleen een paar probleempjes mee.
1. Als ik probeer in te loggen krijg ik een messebox dat het gelukt is.
2. Als ik de content van een webpagina ga bekijken zegt hij dat hij niet is ingelogd.
3. Als ik kijk in de (website) database staat er ook dat ik niet ben ingelogd.
(Op de login pagina op de website worden de sessies aangemaakt).
Hier mijn codes:
Code:
public Hashtable _otherData { get; set; }
public String GetWebContent(String _hyperlink, String username, String password)
{
String _retVal = "err001";
String _urlLogin = "";
String _urlSignin = "";
String _respStr = "";
String _postData = "";
Uri _uriLogin = null;
Uri _uriSignin = null;
_urlLogin = _hyperlink; // is the login Page
_urlSignin = _hyperlink; //is the link used inside the action of the form tag (Note: I suppose in this example that the form name inside the _urlLogin page is "loginForm")
//_urlLogin = "https://www.continental.com/web/en-US/apps/account/account.aspx";
//_urlSignin = "https://www.continental.com/web/en-US/apps/account/signin.aspx";
_uriLogin = new Uri(_urlLogin);
_uriSignin = new Uri(_urlSignin);
try
{
HttpWebRequest _wReq;
HttpWebResponse _wResp;
System.IO.StreamReader _sr;
System.Text.ASCIIEncoding _enc = new System.Text.ASCIIEncoding();
CookieContainer _cookies;
_wReq = (HttpWebRequest)WebRequest.Create(_uriLogin);
_wReq.CookieContainer = new CookieContainer();
_wReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
_wResp = (HttpWebResponse)_wReq.GetResponse();
_sr = new System.IO.StreamReader(_wResp.GetResponseStream());
_respStr = _sr.ReadToEnd();
_sr.Close();
_cookies = _wReq.CookieContainer;
_wResp.Close();
_otherData = new Hashtable();
_otherData.Add("login", new Hashtable());
_otherData.Add("pass", new Hashtable());
//Here insert all the parameter needed for the login... eg: in my example I suppose that the loginForm has two input field named "username" and "password"
((Hashtable)_otherData["login"])["value"] = username;
((Hashtable)_otherData["pass"])["value"] = password;
//you could need to insert other information
_postData = "";
foreach (string name in _otherData.Keys)
{
_postData += "&" + name + "=" + ((Hashtable)_otherData[name])["value"];
}
_postData = _postData.Substring(1);
byte[] _data = _enc.GetBytes(_postData);
_wReq = (HttpWebRequest)WebRequest.Create(_uriSignin);
_wReq.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
_wReq.Referer = _urlLogin;
_wReq.KeepAlive = true;
_wReq.Method = "POST";
_wReq.ContentType = "application/x-www-form-urlencoded";
_wReq.ContentLength = _data.Length;
_wReq.CookieContainer = _cookies;
_wReq.AllowAutoRedirect = false;
_wReq.UserAgent = "Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
System.IO.Stream _outStream = _wReq.GetRequestStream();
_outStream.Write(_data, 0, _data.Length);
_outStream.Close();
_wResp = (HttpWebResponse)_wReq.GetResponse();
_sr = new System.IO.StreamReader(_wResp.GetResponseStream());
_respStr = _sr.ReadToEnd();
_sr.Close();
_wResp.Close();
// _respStr contains the page content... use this for your needed.
_retVal = _respStr;
}
catch (Exception ex)
{
string err = ex.ToString();
throw ex;
//Response.Write(e.ToString());
//return null;
}
return _retVal;
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(
GetWebContent("http://www.domein.nl/login.php", "Admin", "******")
);
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://www.domein.nl/reizen.php");
myRequest.Method = "GET";
WebResponse myResponse = myRequest.GetResponse();
StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8);
string result = sr.ReadToEnd();
MessageBox.Show(result);
sr.Close();
myResponse.Close();
}
Ziet iemand toevallig wat ik verkeerd heb, en kan verbeteren?