Hallo Community,
bin heute das erste mal diesem Forum und benötige professionelle Hilfe beim Login auf einer ASPX Seite.
Habe bereits mehrere Tage damit verbracht, mit verschiedenen Tutorials und Code Snippets mein "kleines Projekt" zum Leben zu erwecken, bis jetzt leider ohne Erfolg.
Vielleicht habe ich auch die falschen Suchbegriffe eingegeben, konnte jedoch auf diesem, wie auch in anderen Foren oder bei G**gle nichts passendes finden.
Was bisher geschah :
Mit folgendem Code :
PHP-Code:
<?php
/*
* username = testuser*account, passwort=abc123
*/
curl_login('https://www.MyDomain.com/Login.aspx','__VIEWSTATE=%2FwEP... und weitere 15000 ZeichenjD63&tbUsername=testuser*account&tbPassword=abc123&cbRememberMe=on&btnLogin=Login','','off');
echo curl_grab_page('https://www.MyDomain.com/Restricted/','','off');
function curl_login($url,$data,$proxy,$proxystatus){
$fp = fopen("cookie.txt", "w");
fclose($fp);
$login = curl_init();
curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($login, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($login, CURLOPT_TIMEOUT, 40);
curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
if ($proxystatus == 'on') {
curl_setopt($login, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($login, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($login, CURLOPT_PROXY, $proxy);
}
curl_setopt($login, CURLOPT_URL, $url);
curl_setopt($login, CURLOPT_HEADER, TRUE);
curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($login, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($login, CURLOPT_POST, TRUE);
curl_setopt($login, CURLOPT_POSTFIELDS, $data);
ob_start(); // prevent any output
$ret = curl_exec ($login); // execute the curl command
ob_end_clean(); // stop preventing output
curl_close ($login);
unset($login);
}
function curl_grab_page($site,$proxy,$proxystatus){
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
if ($proxystatus == 'on') {
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
}
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_URL, $site);
ob_start(); // prevent any output
$ret = curl_exec ($ch); // execute the curl command
ob_end_clean(); // stop preventing output
curl_close ($ch);
return $ret;
}
?>
erhalte ich folgenden cookie :
Code:
# Netscape HTTP Cookie File
# http://curlm.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
www.MyDomain.com FALSE / FALSE 0 AspxAutoDetectCookieSupport 1
Mit diesem Code bekomme ich
PHP-Code:
<?php
$url="https://www.MyDomain.com/Login.aspx";
$ch = curl_init();
//Variablen setzen
$arrSubmit="__LASTFOCUS=&__VIEWSTATE=%2F... und weitere 15000 Zeichen ... DMyyYC6%2BQ%3D%3D&__EVENTTARGET=&__EVENTARGUMENT=&__EVENTVALIDATION=%2FwEWBQK%2BvLXpBQLStq24BwK3jsrkBALX%2BPD1CQKC3IeGDMVJNIIrUyRdfCgaeE%2FV2cbXDqxeNdBVVyEGjMNqWmrJ&tbUsername=testuser*account&tbPassword=abc123&cbRememberMe=on&btnLogin=Login";
$ref_url="https://www.MyDomain.com/";
$cookies="cookies.txt";
//Session Optionen setzen
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $arrSubmit);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
//Ausf hren der Aktionen
$result = curl_exec($ch);
$code = curl_getinfo ($ch, CURLINFO_HTTP_CODE);
switch($code)
{
case 200:
$message = 'Access Granted';
$success = 1;
break;
case 401:
$message = 'Access Denied';
break;
default:
$message = 'Result unknown, access denied.';
break;
}
//Session beenden
echo $message.$code.$result;
?>
folgenden Header angezeigt :
Zitat:
|
HTTP/1.1 100 Continue HTTP/1.1 302 Found Cache-Control: private Content-Length: 158 Content-Type: text/html; charset=utf-8 Location: /Login.aspx?AspxAutoDetectCookieSupport=1 Server: Microsoft-IIS/7.5 X-AspNet-Version: 4.0.30319 Set-Cookie: AspxAutoDetectCookieSupport=1; path=/ X-Powered-By: ASP.NET p3p: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT" Date: Sun, 03 Oct 2010 11:55:45 GMT HTTP/1.1 200 OK Cache-Control: private Content-Length: 28607 Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/7.5 X-AspNet-Version: 4.0.30319 Set-Cookie: ASP.NET_SessionId=aj5vyvxmfiibl51fsg3vrpy5; path=/; HttpOnly X-Powered-By: ASP.NET p3p: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT" Date: Sun, 03 Oct 2010 11:55:45 GMT
|
Darunter steht noch : Access Granted ... was ja schonmal erfolgversprechend aussieht ...
Der Cookie beinhaltet :
Code:
# Netscape HTTP Cookie File
# http://curlm.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
www.MyDomain.com FALSE / FALSE 0 AspxAutoDetectCookieSupport 1
#HttpOnly_www.MyDomain.com FALSE / FALSE 0 ASP.NET_SessionId rsnw4pyvxotbc0lshqtwxoj1
Beide Codes bleiben auf der Login Seite stehen und gehen nicht auf die Backend Seite hinter dem Formular ...
Kann mir bitte jemand helfen, da ich absolut nicht mehr weiter weiss ?
Habe auch schon jemanden gefragt, der sich mit cUrl auskennt. Leider hat er nach kurzer Zeit aufgegeben.
Vielen Dank im voraus
FraMic