4

サブドメイン全体でデータを共有するために、HttpCookie を作成しました。

HttpCookie cookie = new HttpCookie("sessionGUID");
cookie.Value = value;
cookie.Domain = ".example.com";

Response.Cookies.Set(cookie);

「セッション」Cookie (期限切れなし) であるため、ASP.NET セッションと共に期限切れになると不注意に想定しました。もちろん、ブラウザにとってこれは「ブラウザ セッション」Cookie であり、ASP.NET セッションにはリンクされていません。

私がやりたいことは、これらの「ブラウザー セッション」Cookie を ASP.NET セッションと共に期限切れにすることです。

Expires を ASP.NET セッションと同じ値に設定するだけでよいと思います。これをプログラムでどのように判断しますか?

4

1 に答える 1

1

それらが近くにある必要がある場合は、次のようになります。

int expirationMinutes = Session.Timeout;
if (System.Web.HttpContext.Current.Response.Cookies["monster"]!=null)
{
    System.Web.HttpContext.Current.Response.Cookies["monster"].Expires =
                                 DateTime.Now.AddMinutes(expirationMinutes);
}

セッション タイマーは、ユーザーが投稿または取得したすべてのものをリセットします。そのため、現在サーバー上でコードが実行されているため、現在のセッションの残り時間は Session.Timeout、たとえば 20 分です。

20 分後に Cookie は受け入れられなくなり、新しい Cookie を発行する必要があります。

于 2008-12-07T04:55:27.800 に答える