logo       
Google Custom Search
    AddThis Social Bookmark Button

curl, asp.net and login forms: msg#00038

Subject: curl, asp.net and login forms
Hello,

I have a litle php script that used to work but stopped suddenly. I suspect the asp servering host changed some settings.

I searched thru the form and it doesnt have any viewstate in the form nor headers. I use libcurl/7.12.0 OpenSSL/0.9.7a ipv6 zlib/1.2.1.2 libidn/0.5.6 on a linux box.

I used the following code to log in to a asp.NET form. The code used to work until recently when it replies me back the same login form no matter what settings I use.

I define an array postData like this:

$postData[ 'ProcForm' ] = "Process";
$postData[ 'userid' ] = "0"; 
$postData[ 'Join' ] = 2;
$postData[ 'CheckCookie' ] = "1";
$postData[ 'pmode' ] = "0";
$postData[ 'from' ] = "";
$postData[ 'OrgUserEmail' ] = "";
$postData[ 'misspelledmail' ] = "";
$postData[ 'hidErrorCode' ] = "";
$postData[ 'hidbEmail' ] = "";
$postData[ 'username' ] = $luzer;
$postData[ 'password' ] = $pass;
//$postData[ 'login' ] = "Sign In >";

then I use the following code to login:

$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 13);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cok);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cok);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
//curl_setopt($ch, CURLOPT_HTTPHEADER, $myHeader);
curl_setopt($ch, CURLOPT_REFERER, $ref);

$buf2 = curl_exec ($ch);
curl_close ($ch); unset($ch);
echo $buf2;

I also tried to force curl to use HTTP 1.0 but it doesnt work (i look thru the headers)
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
The form does not use HTTPS. I tried also without the CURLOPT_SLL options but the result is the same.


The remote form issues 2 302 redirects which curl parses well but since I am not logged in I can't access the redirect target and I redirected back to the login form.
I insepcted the asp form very well, it uses _javascript_ but doesn't do any _javascript_ redirection or cookie setting/inspection.

The headers sent back by the asp server after my login attempt:
HTTP/1.1 200 OK Connection: keep-alive
Date: Fri, 09 Jun 2006 01:32:38 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
P3P: policyref="/w3c/p3p.xml",CP=
"ALL DSP COR CURa ADMa DEVa TAIa OUR BUS UNI COM NAV INT STA"
cache-control: private pragma: no-cache
cache-control: private pragma: no-cache
Content-Length: 8686
Content-Type: text/html
Expires: Wed, 01 Mar 2006 02:32:38 GMT
Set-Cookie: CKSPTED=1;
path=/ Cache-control: private

The cookie file is writeable and the cookies show up in it everytime I run the script.

I used livehttpheaders to see whats going on when I sign in thru firefox and I obersed that it redirects to another file then tried to access that with curl after the first login curl_exec but it redirects me to the login form (curl doesnt login).
Another thing that concerns me from what I saw in the headers while comunicating thru firefox:

Content-Type: application/x-www-form-urlencoded
Content-Length: 174
ProcForm=Process&userid=0&Join=2&CheckCookie=1 [...snip...] login=Sign+In+%3E

Does curl encodes the headers to look same way as firefox encodes them ? Could this be the problem?

Any suggestion are greatly appreciated,

Thank you,

--
danyvip
_______________________________________________
http://cool.haxx.se/cgi-bin/mailman/listinfo/curl-and-php

Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>