質問

ポストバック間でオブジェクトの値を維持したいページがあります。 オブジェクトの価値を維持する2つの方法を考えています

  
      
  1. View Sateに値を保存
  2.   
  3. 非表示フィールドに値を保存
  4.   

パフォーマンスに基づいて使用するのに最適なオプションです

役に立ちましたか?

解決

クライアント側スクリプトで参照する必要がある しない 場合は、Viewstate。表示する場合は非表示フィールド。

データが機密性の高い場合、Viewstateはデフォルトで暗号化されますが、隠しフィールドはデフォルトでソースを表示する方法を知っている人に見えるプレーンテキストとして保存することも考慮してください。

編集

Andrew Hareの自身の回答に関するメモごとに、私はこれを編集しています。注目に値する重要な区別です。誰かが「安全」だと思うのは嫌だ。監視に基づいてViewstateを使用します。

Viewstateはデフォルトでは暗号化されず、Base-64エンコーディングとして保存されます。かなり簡単にデコードできるため、デフォルトで暗号化されているためViewstateを使用することは無効です。これはプレーンテキストよりも優れていますが、Googleが「Viewstateを復号化」する能力を持っている人には適していません。または「ビューステートをデコード」」。

したがって、クライアント側のコードに隠された情報を保護するためにViewstateに依存しないでください。

こちらの記事では、暗号化の方法を説明しています正しく。 (ただし、パフォーマンスの問題についても警告します)。

他のヒント

ViewState自体は非表示の入力に保存されるため、実際には問題ではありません。どちらか簡単な方を使用してください。 ASP.NETランタイムがオブジェクトのシリアル化と非シリアル化を処理するので、私次第でViewStateを選択します。

ViewStateが好き-ハッキングがはるかに難しい-悪意のある人は、非表示フィールドに不正なデータがあるページを簡単に送信できます

ビューステートに保存します。非表示フィールドは、クライアント側で操作できる情報を保存するためのものであるため、ブラウザで更新できます。ビューステートは、改ざんに対してasp.netによって検証されます。この場合、非表示フィールドを使用して自分で行う必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top