asp.net - aspx 中 __EVENTVALIDATION __VIEWSTATE 的用途是什么?

标签 asp.net

考虑:

Content-Disposition: form-data; name="__VIEWSTATE"

/wEPDwUKMTQxNzIxMTc0MQ9kFgICAw8WAh4HZW5jdHlwZQUTbXVsdGlwYXJ0L2Zvcm0tZGF0YWRkflsROmXoLo8ar8ukWWYDh1Wr2BCwmhiAAqpX/xwqLq8=

Content-Disposition: form-data; name="__EVENTVALIDATION"

/wEWBgKJ1KD6AwKH3P+GBQLr/4HeAgKWoZqyCQLinqurDALt3oXMA0YLgb/Mt6KGihl+8ixYoY9A24wgHGGoPAINhuyP7nEl

我们建立了一个用户可以上传照片的网站。后来我们决定用户也可以通过其他应用程序上传照片,我们希望有一个统一的界面。因此其他应用程序可以使用同一页面。

我们注意到,除非我们知道 __EVENTVALIDATION 和 __VIEWSTATE 的值,否则我们无法上传照片。

当然,应用程序可以只加载上传的图像,但这有点麻烦。

这些有什么用呢?有没有一种方法可以在不指定内容的情况下将图像上传到aspx上传网络?

最佳答案

HTTP是一种无状态协议(protocol),这意味着客户端和服务器没有内置方法来跟踪应用程序从一个请求到下一个请求的状态。人们发明了各种技术来规避这一点,例如 cookie。 ViewState 和事件验证是 ASP.NET 使用的两种技术给网页一种完整的感觉。

ViewState 中的数据是所有控件(输入字段、复选框等)发送到客户端时的状态。当表单发送回服务器时,ASP.NET 可以判断用户是否更改了任何字段中的任何值,并可以引发反射(reflect)此情况的事件 ( CheckedChanged on a checkbox for example )。如果没有 ViewState,服务器将无法判断任何字段是否已更改。

事件验证确保客户端上引发的事件源自 ASP.NET 呈现的控件。

这里是a paper on ViewStateanother that covers event validation .

关于asp.net - aspx 中 __EVENTVALIDATION __VIEWSTATE 的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14558022/

相关文章:

c# - RenderControl 方法不呈现自关闭标签

asp.net - PowerBI Desktop 在获取 OData API 时返回 404,但在 Fiddler 中工作正常

mysql - 不允许通过 IISExpress 连接到 Mysql 服务器

asp.net - 对于 WebForm,OWC 数据透视表工具箱项呈灰色

c# - 将自动生成的 pdf 附加到 asp.net 应用程序中的电子邮件

javascript - 如何在 ASP.NET 中使用循环在复选框选择事件上生成另一个表单?

c# - gridview 中的标题文本更改为零

asp.net - 提供旧文件的 Azure Web 应用程序

c# - 单声道 tlstest.exe 错误

asp.net - IE 不保存 asp.net 身份验证 token /cookie