考虑一下:
Content-Disposition: form-data; name="__VIEWSTATE"
/wEPDwUKMTQxNzIxMTc0MQ9kFgICAw8WAh4HZW5jdHlwZQUTbXVsdGlwYXJ0L2Zvcm0tZGF0YWRkflsROmXoLo8ar8ukWWYDh1Wr2BCwmhiAAqpX/xwqLq8=
Content-Disposition: form-data; name="__EVENTVALIDATION"
/wEWBgKJ1KD6AwKH3P+GBQLr/4HeAgKWoZqyCQLinqurDALt3oXMA0YLgb/Mt6KGihl+8ixYoY9A24wgHGGoPAINhuyP7nEl我们做了一个网站,用户可以上传照片。后来我们决定,用户也可以通过其他应用程序上传照片,我们希望有一个统一的界面。因此,其他应用程序可以使用相同的页面。
我们注意到,除非我们知道__EVENTVALIDATION和__VIEWSTATE的值,否则无法上传照片。
当然,应用程序只能加载上传的图像,但这有点麻烦。
这些到底是用来做什么的?有没有一种方法可以在不指定内容的情况下将图像上传到aspx上传网站?
发布于 2013-01-28 16:22:37
HTTP是一种无状态协议,这意味着客户端和服务器没有内置的方式来跟踪从一个请求到下一个请求的应用程序状态。已经发明了各种技术来规避这一点,例如cookie。ASP.NET使用了ViewState和事件验证这两种技术来给网页以完整的状态。
ViewState中的数据是所有控件(输入字段、复选框等)的状态。当他们被送到客户那里的时候。当表单回发到服务器时,ASP.NET可以判断用户是否更改了任何字段中的任何值,并可以引发反映这一情况的事件(CheckedChanged on a checkbox for example)。如果没有ViewState,服务器将无法判断是否有字段发生了更改。
事件验证可确保客户端上引发的事件源自ASP.NET呈现的控件。
这里是a paper on ViewState和another that covers event validation。
https://stackoverflow.com/questions/14558022
复制相似问题