ログの目的で、ユーザーが完了するまで(アプリケーションはウィザードのようなものです)、ページからページへと機密情報(ユーザーのアカウント番号など)を渡す必要があるWebアプリケーションを設計しています。プロセス内の各ページがデータにアクセスできるように、このデータを保存する最善の方法は何ですか? セッションに保存する必要がありますか?データベースで、最後に削除しますか? まだ考えていない方法?
2 に答える
個人的には、可能な限りセッションを使用しないようにしています。ウィザード タイプのシナリオを扱う場合に私が知っているオプションは次のとおりです。
オプション1
Nadeem Afana のブログで説明されているように、JQuery を使用します。ページは 1 つずつユーザーに表示されますが、情報は最後のページまで送信されません。
オプション 2
すべてのページの情報は機密情報ですか? 最終ページで機密情報のみを要求するように構成できますか? その場合、 Darin Dimitrovs answerで説明されているように、ページ全体でデータをシリアル化し、最終ページに戻るボタンを提供しないでください。または、シリアル化されたデータは、同じ MVC Futures シリアル化ソフトウェアを使用して簡単に暗号化できますが、情報の機密性と、これに依存するかどうかはわかりません。答えにはStepyなどの代替手段についても言及されていますが、私はこれについての経験がありません。
オプション 3
情報が機密性の高い場合は、リクエスト間でデータベースに情報を読み書きできます。
オプション 4
最後に、上記のいずれも使用できない場合は、Session または TempData (セッションのラッパー) を使用しますが、TempData では、ユーザーがページを更新すると情報が失われることに注意してください。
セッションは私には問題ないように思えますが、(ほぼ) 自動的に消えます。
あなたが偏執狂的であれば、それを暗号化するか、別の場所に保存して、ハッシュを介して見つけることができます. この「どこか別の場所」が次の保存ポイントです。
Web クライアントに到達しないことを確認してください。