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中. 到目前为止,我还没有找到解决方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |