ブラウザは、ペイメントゲートウェイのサイトへのポストリクエストでASP.NET_SessionId Cookieを設定しません
Webアプリケーションの支払いプロセスで奇妙な問題が発生し、セッションデータが失われています。 このプロセスでは、チェックアウトページのユーザーが支払いプロバイダーのページにリダイレクトされ、サイトにアクセスするとすぐに(指定されたURLに)サイトにリダイレクトされます。この最後のリダイレクトは、基本的に私たちのサイトに投稿するフォームと、ページの読み込み時にそのフォームを投稿する数行のJavaScriptコードで構成される支払いプロバイダーのHTMLコードのブラウザーの評価によって行われます。この時点で、ブラウザはPOST要求を行いますが、まったく同じドメイン(アプリケーションのドメイン)に対して行われた以前の要求に存在する「ASP.NET_SessionId」Cookieを設定しません。さらに奇妙なのは、「AcceptCookie」という名前の別のCookieを設定することです。「ASP.NET_SessionId」Cookieをドロップすることを選択するだけです。 状況を説明するために、いくつかのスクリーンショットを撮りました。(これらのスクリーンショットでは、オレンジと緑の長方形にまったく同じ値が含まれています。) これは、ユーザーが「チェックアウト」ボタンを押したときに(アプリケーションに対して)行われた要求です。このリクエストの後、ユーザーは支払いプロバイダーのページにリダイレクトされます。 チェックアウトリクエスト これは、ユーザーがそこで完了した後に支払いプロバイダーによって提供される最後のページです。ご覧のとおり、ページの読み込み時にドメインに自動的に投稿されるのは単純なフォームです。 支払いプロバイダーの最終応答 ただし、この投稿リクエストには「ASP.NET_SessionId」Cookieが含まれていないため、新しいセッションIDが取得され、以前のセッションデータが失われます。ここでも、「ASP.NET_SessionId」だけが欠落しており、「AcceptCookie」という名前のものは欠落しています。 ユーザーをサイトに戻すリクエストをポストします(前のステップでJavaScriptで作成) 最後に、古いバージョンのブラウザではこの問題は発生しないことを突き止めました。Firefox 52では魅力的に機能しますが、Firefox 71では上記の問題が発生します。 何か案は? 注:これは、targetFramework = "4.5.2"を含むASP.NET MVCアプリケーションです。 ごきげんよう。