ASP.NET HttpSessionでASP.NETセッションCookieを期限切れにする方法は?
-
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を発行する必要があります。
所属していません StackOverflow