ブラウザに Cookie を設定しようとしていますが、その直後に Cookie の値を警告し、Cookie があることを確認しています。その後、自分の場所をGoogleにリダイレクトし、Googleが認証した後、制御がサーバーに移動します。
現在、サーバーはこの特定のリクエストに値を持っていません。しかし奇妙なことに、サーバーは後続のすべてのリクエストで Cookie の値を持っています。
クライアントコードは次のとおりです。
cookies.SetCookie('CampaignToken', data.CampaignToken, '12/06/2013 00:00:00', '/');
alert(cookies.GetCookie('CampaignToken').toString());
window.location = data.GoogleRequestURL;
Google から制御が戻った後に実行されるサーバー コードを次に示します。
if (Request.Cookies["CampaignToken"] != null)
{
var cookie = Request.Cookies["CampaignToken"].Value;
Response.Cookies.Remove("CampaignToken");
return Redirect(Request.Url + "/" + cookie);
}
ここで注意すべきことは、Request.Cookies["CampaignToken"] が最初に null を返し、次に Cookie の値を返すことです。また、Google にアクセスする直前にクライアントでアラートを実行すると、cookie に価値があります。