18

検討:

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

/wEPDwUKMTQxNzIxMTc0MQ9kFgICAw8WAh4HZW5jdHlwZQUTbXVsdGlwYXJ0L2Zvcm0tZGF0YWRkflsROmXoLo8ar8ukWWYDh1Wr2BCwmhiAAqpX/xwqLq8=

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

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

ユーザーが写真をアップロードできるサイトを作ります。その後、ユーザーは他のアプリケーションを介して写真をアップロードすることもできると判断しました。統一されたインターフェースを使用したいと考えています。したがって、他のアプリケーションは同じページで動作します。

__EVENTVALIDATIONと__VIEWSTATEの値がわからないと、写真をアップロードできないことに気付きました。

もちろん、アプリケーションはアップロードする画像をロードするだけですが、それはちょっと面倒です。

とにかくそれらは何ですか?物事を指定せずにaspxアップロードウェブに画像をアップロードする方法はありますか?

4

1 に答える 1

25

HTTPはステートレスプロトコルです。つまり、クライアントとサーバーには、ある要求から次の要求までアプリケーションの状態を追跡する方法が組み込まれていません。これを回避するために、Cookieなどのさまざまな技術が発明されています。ViewStateとイベント検証は、 ASP.NETがWebページに状態を完全に感じさせるために使用する2つの手法です。

ViewStateのデータは、すべてのコントロール(入力フィールド、チェックボックスなど)がクライアントに送信されたときの状態です。フォームがサーバーにポストバックされると、ASP.NETは、ユーザーがいずれかのフィールドの値を変更したかどうかを通知し、これを反映するイベントを発生させることができます(CheckedChangedたとえば、チェックボックスで)。ViewStateがないと、サーバーはフィールドが変更されたかどうかを判断できません。

イベント検証は、クライアントで発生したイベントがASP.NETによってレンダリングされたコントロールから発生していることを確認します。

これは、ViewStateに関する論文と、イベント検証をカバーする別の論文です。

于 2013-01-28T08:22:36.533 に答える