看来您正在
POST对aspx页面执行 *** 作。
当aspx页面接收到
POST请求时,它会期望一些隐藏的输入,这些隐藏的输入具有已编码的ViewState-
如果浏览到有问题的页面和“查看源代码”,则应该在
<form />标记内看到一些类似于以下内容的字段:
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /><input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /><input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="xxxxxxxxx" />
因为您提交的
POST请求中没有这些值,所以解码和验证它们时会遇到麻烦(这就是错误的含义-在其他情况下,它也会由于其他原因而出现)。
有两种可能的解决方案:
1-如果您有权访问网站的代码,并且登录页面不需要ViewState,则可以尝试在
@Page伪指令中的页面级别将其关闭:
<%@ Page ViewStateMode="Disabled" .... %>
2-您可以执行双重请求-
GET在登录页面上进行请求以检索所有缺少的隐藏字段的值-使用这些值并将其包括在您的
POST
编辑 啊,是的,从您的评论中我可以看到您已经包含了隐藏的表单字段-抱歉!
在这种情况下,另一种可能性是登录页面处于负载平衡的环境中。该环境中的每个服务器将具有一个不同的
MachineKey值(用于对ViewState进行编码/解码)。您可能正在阅读中的一个,然后在另一个中发布。一些LB将ArrowPoint
cookie注入响应中,以确保您在请求之间“粘贴”到同一服务器。
我可以看到您已经在其中包含一个cookie
POST,但看不到它的定义位置。是来自第一个
GET请求,还是自定义cookie?如果您还没有尝试过,也许尝试使用原始的cookie来
GET获取登录页面HTML?除此之外,我没主意-
对不起!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)