通过curl android

时间:2016-01-18 08:52:26

标签: android asp.net curl viewstate

我是一个aspx网站的用户,我最近制作了一个shell脚本从网站上下载pdf文件,该脚本工作2-3天非常好......但是之后它停止工作...错误是& #39; viewstate validation'错误.iam shell编程中的完整菜鸟.. 使用curl命令捕获的Viewstate值:

/ wEPDwUJOTcyNDMyNDExZGTFH + 8YURsFdHWIPx + 4glo2ovFz2w ==

使用curl命令发布的Viewstate值:

/ wEPDwUJOTcyNDMyNDExZGTFH + 8YURsFdHWIPx + 4glo2ovFz2w ==

aspx网页显示的视图状态值错误:

/ wEPDwUJOTcyNDMyNDExZGTFH 8YURsFdHWIPx 4glo2ovFz2w ==

正如您所看到的,错误页面显示的viewstate值不包含' +'符号,这可能是视图状态验证错误的原因吗? 但我通过使用curl命令正确发布数据..我不知道为什么错误页面显示不正确的viewstate值。任何帮助可能非常感谢 网络服务器是否可以阻止卷曲请求?因为我经常使用curl命令 所以我更改了仍然显示viewstate错误网页的用户代理和IP地址

1 个答案:

答案 0 :(得分:0)

不是自动生成ASP.Net中默认的验证密钥,而是明确指定它们,如下所示。这些键用于验证视图状态。

另外,在您的aspx页面中,尝试将这些内容添加到页面顶部的Page指令:ViewStateEncryptionMode="Never" EnableViewStateMac="false"

使用IIS管理器显式生成您自己的密钥,因为它具有安全功能,如此URL所述:Generate Keys in IIS

<system.web>
<machineKey  
validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7
               AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"           
decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
validation="SHA1"
decryption="AES"
/>
</system.web>