Foros del Web » Programando para Internet » PHP »

Curl Login ASP.net

Estas en el tema de Curl Login ASP.net en el foro de PHP en Foros del Web. Hola comunidad, estoy tratando de hacer login para poder automatizar la compra de paquetes desde esta web, es la web de mi compañia de celulares.. ...
  #1 (permalink)  
Antiguo 16/01/2014, 12:37
 
Fecha de Ingreso: enero-2011
Ubicación: Ya dije
Mensajes: 43
Antigüedad: 13 años, 2 meses
Puntos: 0
Curl Login ASP.net

Hola comunidad, estoy tratando de hacer login para poder automatizar la compra de paquetes desde esta web, es la web de mi compañia de celulares..

Cita:
https://autogestion.personal.com.ar/individuos/

MI USUARIO

area: 351
Mi linea: 3390903
Mi Password: 1002


MI CODIGO

Código PHP:
<?php

/************************************************ 
* Los valores utilizados en toda la secuencia de comandos 
************************************************/ 
// Urls para llamar - la página de inicio de sesión y la página segura
$urlLogin "https://sso.personal.com.ar/openam/UI/Login";
$urlSecuredPage "https://autogestion.personal.com.ar/Individuos/default.aspx";

// Nombres y valores para Iniciar sesión
$nameLine='ctl00$LogueoPropio$TxtLinea';       // the name of the line textbox on the login form
$nameArea='ctl00$LogueoPropio$TxtArea';  // the name of the area textbox on the login form
$namePassword='ctl00$LogueoPropio$TxtPin';       // the name of the pin textbox on the login form
$nameLoginBtn='ctl00$LogueoPropio$BtnAceptarSSO';          // the name of the login button (submit) on the login form
$valLinea ='3390903';        // the value to submit for the username
$valArea ='351';  // the value to submit for the username
$valPassword ='1002';        // the value to submit for the password
$valLoginBtn ='Ingresar';             // the text value of the login button itself

// the path to a file we can read/write; this will
// store cookies we need for accessing secured pages
$cookies 'cookie.txt';

// regular expressions to parse out the special ASP.NET
// values for __VIEWSTATE and __EVENTVALIDATION
$regexViewstate '/__VIEWSTATE\" value=/wEPDwULLTIxNDY1NDg1ODQPZBYCZg9kFgICAg9kFgICBQ9kFgQCBw8WAh4FY2xhc3MFB29jdWx0YXIWAmYPZBYCZg9kFgJmDw8WAh4ISW1hZ2VVcmxlFgIfAAUHb2N1bHRhcmQCCQ8PFgIeB1Zpc2libGVoZGRk4fvsOs+uznn9WVTXkbncT90vjQE=';
$regexEventVal  '/__EVENTVALIDATION\" value=/wEWBQKX3YiQBQLax5j4DgK++MCHCgK+nZHxBALWjZjDDa95dvCznHHJeCFwT7fCtKBTr3G7';


/************************************************
* utility function: regexExtract
*    use the given regular expression to extract
*    a value from the given text;  $regs will
*    be set to an array of all group values
*    (assuming a match) and the nthValue item
*    from the array is returned as a string
************************************************/
function regexExtract($text$regex$regs$nthValue)
{
if (
preg_match($regex$text$regs)) {
 
$result $regs[$nthValue];
}
else {
 
$result "";
}
return 
$result;
}



/************************************************
* initialize a curl handle; we'll use this
*   handle throughout the script
************************************************/
$ch curl_init();


/************************************************
* first, issue a GET call to the ASP.NET login
*   page.  This is necessary to retrieve the
*   __VIEWSTATE and __EVENTVALIDATION values
*   that the server issues
************************************************/
curl_setopt($chCURLOPT_URL$urlLogin);
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
curl_setopt($chCURLOPT_FOLLOWLOCATIONTRUE);
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
$data=curl_exec($ch);

// from the returned html, parse out the __VIEWSTATE and
// __EVENTVALIDATION values
$viewstate regexExtract($data,$regexViewstate,$regs,1);
$eventval regexExtract($data$regexEventVal,$regs,1);


/************************************************
* now issue a second call to the Login page;
*   this time, it will be a POST; we'll send back
*   as post data the __VIEWSTATE and __EVENTVALIDATION
*   values the server previously sent us, as well as the
*   username/password.  We'll also set up a cookie
*   jar to retrieve the authentication cookie that
*   the server will generate and send us upon login.
************************************************/
$postData '__VIEWSTATE='.rawurlencode($viewstate)
          .
'&__EVENTVALIDATION='.rawurlencode($eventval)
          .
'&'.$nameArea.'='.$valArea
          
.'&'.$nameUsername.'='.$valUsername
          
.'&'.$namePassword.'='.$valPassword
          
.'&'.$nameLoginBtn.'='.$valLoginBtn
          
;

curl_setOpt($chCURLOPT_POSTTRUE);
curl_setopt($chCURLOPT_POSTFIELDS$postData);
curl_setopt($chCURLOPT_URL$urlLogin);   
curl_setopt($chCURLOPT_COOKIEJAR$cookieFile);     

$data curl_exec($ch);


/************************************************
* with the authentication cookie in the jar,
* we'll now issue a GET to the secured page;
* we set curl's COOKIEFILE option to the same
* file we used for the jar before to ensure the
* authentication cookie is sent back to the
* server
************************************************/
curl_setOpt($chCURLOPT_POSTFALSE);
curl_setopt($chCURLOPT_URL$urlSecuredPage);   
curl_setopt($chCURLOPT_COOKIEFILE$cookieFile);     

$data curl_exec($ch);

// at this point the secured page may be parsed for
// values, or additional POSTS made to submit parameters
// and retrieve data.  For this sample, we'll just
// echo the results.
echo $data;



/************************************************
* that's it! Close the curl handle
************************************************/
curl_close($ch);


?>

CABECERA

Código:
https://sso.personal.com.ar/openam/UI/Login

POST /openam/UI/Login HTTP/1.1
Host: sso.personal.com.ar
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ar,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: https://autogestion.personal.com.ar/Individuos/index.aspx
Cookie: JSESSIONID=8AF8677AC18E94F5A4EA5868015E0AC1; TS52869c=6a0cf8999894631d37a0679a2f0f8a2506d6702bce25bb8452d81cbd; __utma=146248757.1570333847.1377892189.1377892189.1377892189.1; __utmz=146248757.1377892189.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); clubpersonal_cookie=24.232.199.132; TS5c9195=6a0cf8999894631d37a0679a2f0f8a2506d6702bce25bb8452d81cbd; amlbcookie=01; iPlanetDirectoryPro=AQIC5wM2LY4Sfcw8ZY7IS696c_stzBIRrd5Buu1DaEiwhT8.*AAJTSQACMDIAAlMxAAIwMQ..*
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 689
__LASTFOCUS=&__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwULLTIxNDY1NDg1ODQPZBYCZg9kFgICAg9kFgICBQ9kFgQCBw8WAh4FY2xhc3MFB29jdWx0YXIWAmYPZBYCZg9kFgJmDw8WAh4ISW1hZ2VVcmxlFgIfAAUHb2N1bHRhcmQCCQ8PFgIeB1Zpc2libGVoZGRk4fvsOs%2Buznn9WVTXkbncT90vjQE%3D&__EVENTVALIDATION=%2FwEWBQKX3YiQBQLax5j4DgK%2B%2BMCHCgK%2BnZHxBALWjZjDDa95dvCznHHJeCFwT7fCtKBTr3G7&buscar=&ctl00%24LogueoPropio%24TxtArea=351&ctl00%24LogueoPropio%24TxtLinea=3390903&ctl00%24LogueoPropio%24TxtPin=1002&IDToken3=&goto=https%3A%2F%2Fautogestion.personal.com.ar%2FIndividuos%2Fdefault.aspx&gotoOnFail=https%3A%2F%2Fautogestion.personal.com.ar%2FIndividuos%2FRespuesta.aspx&realm=%2Fservicios&IDToken1=3513390903&IDToken2=1002
HTTP/1.1 302 Moved Temporarily
X-Powered-By: Servlet 2.5; JBoss-5.0/JBossWeb-2.1
Cache-Control: private
Set-Cookie: JSESSIONID=99A4B69FF1F9EE8518CED099DD01541B; Path=/openam
Set-Cookie: AMAuthCookie=AQIC5wM2LY4SfczdRIE_WZr9njkGI4ewaLvZHrlho9I0ZSk.*AAJTSQACMDIAAlMxAAIwMw..*; Domain=.personal.com.ar; Path=/
Set-Cookie: amlbcookie=03; Domain=.personal.com.ar; Path=/
Set-Cookie: iPlanetDirectoryPro=AQIC5wM2LY4SfczdRIE_WZr9njkGI4ewaLvZHrlho9I0ZSk.*AAJTSQACMDIAAlMxAAIwMw..*; Domain=.personal.com.ar; Path=/
Set-Cookie: AMAuthCookie=LOGOUT; Domain=.personal.com.ar; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
Set-Cookie: TS5c9195=09d54bed8742dce93cebc1cf08651ca606d6702bce25bb8452d826f0; Path=/
Set-Cookie: TS52869c=6a0cf8999894631d37a0679a2f0f8a2506d6702bce25bb8452d81cbd; Path=/openam
Pragma: no-cache
Expires: 0
X-DSAMEVersion: (2011-March-02 18:42)
AM_CLIENT_TYPE: genericHTML
X-AuthErrorCode: 0
Location: https://autogestion.personal.com.ar/Individuos/default.aspx
Content-Length: 0
Date: Thu, 16 Jan 2014 18:37:35 GMT
----------------------------------------------------------
Espero que me puedan dar una mano ya que no puedo hacer el login. me esta volviendo loco

gracias y saludos!

Última edición por Alanfederico; 16/01/2014 a las 12:40 Razón: error codigo viejo

Etiquetas: asp, curl
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:50.