サードパーティ ベンダーの機能を追加しようとしている大規模な .NET サイトがあります。
私たちが行っていることの1つの問題は、サードパーティのサイトへのリダイレクトを行い、ユーザーが何らかの情報を入力し、サードパーティのサイトがそれを処理し、保存する必要のある情報とともにプログラムによるポストバックを行うことです.サードパーティのサイトが私たちにリダイレクトされたら、セッションとアクセス。
したがって、基本的な流れは次のとおりです。
- ユーザーがボタンをクリックして、このサードパーティのオファーを利用したいことを示します
- サードパーティのサイトにリダイレクトし、セッション ID を URL 行のクエリ パラメータとして含めます。
- サードパーティのサイトが情報を収集し、ユーザーを承認します
- サードパーティのサイトは、ユーザー情報やその他のさまざまな情報を、Post の本文のデータとしてプログラムでポストバックします。返される情報の一部は、セッション ID です。NO COOKIE DATA が返されるため、セッション ID は、.NET が通常期待する Cookie にはありません。
- セッション内の情報をキャッシュし、サードパーティのサイトに HTTP の成功または失敗 (2xx または 4xx HTTP 応答) と本文の少量のデータで応答します。
- サードパーティのサイトはユーザーにすべて問題ないことを伝え、ユーザーはボタンをクリックしてサイトに戻ることができます。
簡単に....と思いました。しかし、秘訣はステップ 4 です。Cookie がありません = 現在のセッションは、ステップ 6 でユーザーがリダイレクトされたセッションではありません。
返されたデータからセッション ID を取得してリダイレクトすることで、過去に同様の状況に対処しましたが、このベンダーの場合、リダイレクトが生成する 3xx ではなく、2xx または 4xx が必要です。実際、プログラムによる投稿へのリダイレクトで戻る...それはうまくいきませんよね? リダイレクトを処理するのはブラウザではありません。いずれにせよ、この時点でユーザーがサイトに戻ってくることは望ましくありません。
プログラムで正しいセッションに接続できる他の方法があるかどうかを調べるためにいくつかの調査を行いましたが、空白になっています。うまくいけば、私が逃したものがあります。