ASP.NET HttpSessionでASP.NETセッションCookieを期限切れにする方法は?

StackOverflow https://stackoverflow.com/questions/347227

  •  19-08-2019
  •  | 
  •  

質問

サブドメイン全体でデータを共有するために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セッションとともに期限切れにすることです。

iは、ExpiresをASP.NETセッションと同じ値に設定する必要があると思います。これをプログラムでどのように決定しますか?

役に立ちましたか?

解決

近くにいる必要がある場合は、次のようにします:

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を発行する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top