3

のようなことを言うことが可能です

「そのような状況にある場合、ポストバック間で値を保存するために SessionState を使用する必要があります。」

asp.net 開発者が SessionState を ViewState または HiddenFields またはクエリ文字列から強制的に切り替える基本的な理由を教えてください。

ありがとう

4

4 に答える 4

4
  • ユーザーが 2 ページを超えるナビゲーションを行っているときにそのまま移動するユーザー固有のオブジェクトがある場合は、多少の労力を節約できる場合があります。

  • ユーザー データが機密性の高い場合、クライアント テクニックを使用して保存することはできません。また、暗号化すると、特に aspx ページに数千のコード行がある大規模なシステムで作業するたびにデータを暗号化および復号化することにより、パフォーマンスの問題が発生します(打つほど性能が悪い)

于 2010-07-26T11:31:03.467 に答える
1

セッション状態は、情報を保持したいときにいつでも使用されます

  • ユーザーあたり
  • サーバー上

サーバー部分はセキュリティ上の理由からです。ビューステート、hiddenfields、またはクエリ文字列でブラウザにセキュリティが発生しやすい情報を渡したくない場合。これらの3つは簡単に読むことができます。

また、セッション状態に多くの情報を入れないように注意してください。そうする場合は、状態マネージャーやSQLサーバーを使用するなどのアウトプロセスアプローチの使用を再検討してください。

于 2010-07-26T09:30:03.873 に答える
1

1 人のユーザーに固有のデータがあり、取得/作成に比較的コストがかかりますが、保存するのにあまり多くのメモリを必要としない場合は、適切な候補があります。

たとえば、高価なデータベース クエリから取得したデータや、リモート Web サービスから取得したデータです。

ViewState、隠しフィールド、およびクエリ文字列は、機密ではない少量のデータに使用する必要があります。

ユーザーがクエリ文字列を介してデータを入力できるようにすると、ユーザーはこれらのデータを含むブックマークを作成できるため、特に便利です。

于 2010-07-26T11:56:17.410 に答える
0

すでに受け取った回答に追加するには:

  • ユーザーに関連付ける比較的大量のデータがある場合。このような場合、ポストバックを処理している場合、ViewState は非常に遅く (約 150K を超えると、クロールへの応答が実際に遅くなる可能性があります)、クエリ文字列は完全に不適切です (URL サイズと、Web サービスによって課される長さのハード制限のため)。ブラウザー。)
于 2010-07-26T11:45:42.767 に答える