otomatik olarak bir. net sitesinde [aspx sayfalar] giriş yapmak php curl kullanarak çağrılar arasında oturumunu

0 Cevap php

Ben otomatik olarak bir ASP.NET sitesine oturum açma için PHP ve CURL kullanıyorum. Ben CURL ve kullanıcı giriş verilerini kullanarak, bu siteye giriş için başardı.

Ben daha fazla istekleri yaptığınızda, ben oturumu farklı olduğunu bulmak ve dolayısıyla ben sonraki görüşmeler için bir 302 yeniden yönlendirme olsun.

Bu sorun için ben aşağıdaki kodu kullanıyorum,

<?php

session_start();

$LanguagePnlCUSTOM3 = 'en';
$ProductPnlCUSTOM3 = "eks";
$TxtUsernamePnlCUSTOM3 = "username";
$TxtPasswordPnlCUSTOM3 = "password";
$___VIEWSTATE = "dDwtMTA3MTYzODE3OD47aTw1Pjs+O2w8dDxwPGw1sOz47bDxlS2V5c3Rvc3RvbmUgQXV0b21vdGl2ZSBPBJbmMuOz4+Ozs+O3Q8cDxsPbGU7UGFnZU5hbWU7Pjt0gLSBLZXlzdGZlIE9wZXJhYy47ZUtleXN0b25tleXN0b25lIEF1dG9tb3RpdmUW9ucywgSW5jLjs+PjtsPGk8MT47PjtsPHQ8O2w8aTwxPjtpPDI+O2k8NT47aTw2PjtpPDc+O2k8OD47aTw5PjtpPDb250cm9scy5Ib3Jpem9udGFsQWxpZ24sIFN5c3RlbS5XZWIsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhPExlZnQ+OzE8MTZweD47MTw1NjBweD47U3lzdGVtbmUuY29tL2ltYWdlcy8wMC8wMDAwMC9ncmFkaWFudF9ncmV5LmpwZylcO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdFw7Oz4+Pjs7Pjt0PHQ8O3A8bDxpPDA+Oz47bDxwPFAwO0xvZ2luSGlnaGxpZ2h0cz47Pj47Pjs7Pjs+Pjs+Pjs+Pjs+XTwa2KbDxZNDgVjTSvGaWnN/J10=";
$LoginBtnPnlCUSTOM3 = "loginbutton";


$curlPost = 'LanguagePnlCUSTOM3='  . urlencode($LanguagePnlCUSTOM3) . '&ProductPnlCUSTOM3=' . urlencode($ProductPnlCUSTOM3) . '&TxtUsernamePnlCUSTOM3='.urlencode($TxtUsernamePnlCUSTOM3);
$curlPost .= '&TxtPasswordPnlCUSTOM3='.urlencode($TxtPasswordPnlCUSTOM3).'&___VIEWSTATE='.urlencode($___VIEWSTATE).'&LoginBtnPnlCUSTOM3='.urlencode($LoginBtnPnlCUSTOM3);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://domain.com/Page.aspx?uid=5001login');
curl_setopt($ch, CURLOPT_HEADER, array( 'Expect:' ) );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec($ch);

if(stripos($data,"ASP.NET_SessionId"))
{
    $retData = explode("ASP.NET_SessionId=", $data);
    $sessionTempValue = explode(";",$retData[1]);

    /*
     * setup the cookie with the recd data here..
     */

    echo $sendCookie1 = "ASP.NET_SessionId=".$sessionTempValue[0].'; path=/';
    setcookie("ASP.NET_SessionId",$sessionTempValue[0]);
    echo "<br />";
    echo $sendCookie2 = "ServerID=3105; path=/";
    setcookie("ServerID", "3105");
    echo "<br />";
}

/*
 * New curl request with the session and other cookie informations
 */

session_write_close();

//$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://domain.com/Page.aspx?part=25690main');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

/*
 * Manage cookies btw curl requests.
 */
if($sendCookie1 != '' && $sendCookie2 != '')
{
    curl_setopt( $ch, CURLOPT_COOKIE, $sendCookie2.' ; '.$sendCookie2 );
}

$data = curl_exec($ch);
var_dump($data);
curl_close($ch);

?>

Lütfen ben bu kimlik bilgilerini kullanarak otomatik ve ardından giriş gerekiyor unutmayın, ben parçaları ya da benim için ilgili mesajları almak ve benim php sitesinde bunları kullanmak zorunda olacak.

I çözülmüştür almak böylece doğru bir şekilde beni yönlendirin ve bu çözüm doğru / uygun olduğunu, başka sizin düzeltmeler / yorum bırakın lütfen.

şimdiden teşekkürler

0 Cevap