加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php curl – 发布asp.net viewstate值

发布时间:2020-12-13 18:05:42 所属栏目:PHP教程 来源:网络整理
导读:我有以下代码从本地站点登录表单(用 PHP编写)登录到外部站点应用程序(asp.net app): ?php$curl_connection = curl_init('www.external.com/login.aspx');curl_setopt($curl_connection,CURLOPT_CONNECTTIMEOUT,30);curl_setopt($curl_connection,CURLOPT_US
我有以下代码从本地站点登录表单(用 PHP编写)登录到外部站点应用程序(asp.net app):
<?php
$curl_connection = curl_init('www.external.com/login.aspx');

curl_setopt($curl_connection,CURLOPT_CONNECTTIMEOUT,30);
curl_setopt($curl_connection,CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl_connection,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($curl_connection,CURLOPT_FOLLOWLOCATION,1);

// Post data array
$post_data['LoginControl$UserName'] = 'ExampleUName';
$post_data['LoginControl$Password'] = 'ExamplePWord';

// Add form fields into an array to get ready to post
foreach ($post_data as $key => $value) 
  {
$post_items[] = $key . '=' . $value;
  }
$post_string = implode ('&',$post_items);

// Tell cURL which string to post
curl_setopt($curl_connection,CURLOPT_POSTFIELDS,$post_string);

// Execute and post
$result = curl_exec($curl_connection);
?>

我被定向到外部站点的登录表单,而不是被定向到登录的应用程序.我认为问题是我需要传递viewstate值,但我不知道该怎么做呢?

我无法控制外部应用程序.但我们希望用户能够通过我们的网站登录该应用程序,以维护品牌等.

我最近发布了一些关于php cURL使用的其他线程,但我现在正处于我认为viewstate是问题的阶段……

谢谢,马克.

当试图刮掉asp.net页面时,这似乎是一个真正的问题.

这些页面包含一个名为“__VIEWSTATE”的隐藏字段,其中包含一个base64编码的va集; ues包含发送页面时的部分或全部页面状态.它通常还包含viewstate的SHA1.

这意味着您的帖子必须包含_VIEWSTATE中的所有内容,否则它将失败.

我已经能够发布一个简单的登录页面,该页面只有2个字段,但没有更复杂的页面,作者已选择将整个页面状态放在viewstate中.

到目前为止,我还没有找到解决方案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读