2011-07-13 26 views
0

私たちはアプリケーションで支払いゲートウェイを統合しています。私たちが直面している問題は、支払いゲートウェイに変数を提供した後、ターゲットページで、異なるページで処理されたデータの後にすべてのセッション値をフェッチできないということです。ソースページから異なるページからターゲットページへの制御値を維持するための最良の方法はどれでしょうか。asp.netでの状態管理

私は一時的なテーブルでそれを維持していますが、プロセスが複雑になります。

より良いオプションをお勧めします。

ありがとうございます。 アナンド

答えて

0

クッキーを使用して、お支払い後に情報を取得したら、それを削除してください。

0

セッションにこれを保存してください。asp.netには、データベース、状態サーバー、またはローカルメモリの3つのセッション管理方法が組み込まれています。

あなたはあなたがそう

セッション[ "MYKEY"] = "myValue" などのセッションにデータを格納することができ、

以降、セッション["myKey"]を使用して取得します。

データは、これらのオプションはで働くように私は、データベースや状態サーバーのいずれかをお勧めし

(私はそれが20分だと思うデフォルトでは)限り、あなたがするセッションタイムアウトを設定したため、セッション中に存在することになりますインメモリではなく(少なくともスマートなロードバランサを持たずに、クライアントを元のリクエストがフォームに来たサーバーにリダイレクトすることはありません)。

クッキーを使用することもオプションですが、セキュリティ要件によっては、クッキーの暗号化とハッシュを使用してこれを軽減することはできますが、ユーザーがクッキーを表示したり変更したりすることはできません。

0

必要なものすべてを含むOrderオブジェクトを作成します。そして、このOrderオブジェクトをセッションに沿って追加した各ページに渡し、最後のページでオブジェクトをDBに保存するか、それとも何をするのかを指定します。

0

これは、維持したいデータ損失が許容可能な場合、このデータをセッションにプッシュできます。これは最も単純なメカニズムですが、インプロセスセッションの場合、サーバーの再起動(またはWebファームの場合)でデータが失われます。プロセスセッション記憶域(データベースまたはSQL)を選択することはできますが、セッションデータ全体が別のメディアに保存されることを意味します。また、セッションがタイムアウトしてもデータは失われる可能性があります。

また、データをデータベース(または別の永続的なメディア)に保存することもできます。これはASP.NETセッションからリンク解除され、柔軟性が大幅に向上します。面倒なことに、データをDBに永続化するコードを書く必要があります(EFやHibernateなどのORMを使用すると時間を節約できます)。個人的には、データが重大であり、セッションの再開後も存続しなければならない場合に限り、このルートに行きます(つまり、ユーザーはログアウトして次のログイン時にトランザクションを再開/再確認できます)。 )。

関連する問題