ASP.NetプロジェクトでCookieを使用したいと思います。私はこのように設定されたCookie:有効期限切れのCookieがHttpCookieCollectionから返されるのはなぜですか?
HttpCookie cookie = new HttpCookie(name);
cookie.Expires = DateTime.Now.AddYears(1);
cookie.Value = data;
HttpContext.Current.Response.Cookies.Set(cookie)
ととして得る:
var cookieCollection = HttpContext.Current.Request.Cookies;
var cookie = cookieCollection[name].Value;
を私は基本的には、取得問題のプロパティを変更して、設定しないクッキーを更新します。私が最初に設定した後、このように
cookieCollection[0]
{System.Web.HttpCookie}
Domain: null
Expires: {01-01-0001 00:00:00}
HasKeys: false
HttpOnly: false
Name: "myCookieUc"
Path: "/"
Secure: false
Shareable: false
Value: "{...}"
Values: {...}
cookieCollection[1]
{System.Web.HttpCookie}
Domain: null
Expires: {21-01-2018 11:00:10}
HasKeys: false
HttpOnly: false
Name: "myCookieUc"
Path: "/"
Secure: false
Shareable: false
Value: "{...}"
Values: {...}
:さて、私が気づいたことは、私はクッキーを更新するとき、.NETが同じ名前でcookieCollectionに新しいクッキーを追加し、そしてなど期限切れの古いものを設定することです私のクッキーを更新したら、私はクッキーコレクションに2つのクッキーを持っています。だから私が取得しようとするとき:
var cookie = cookieCollection[name].Value;
私はすでに有効期限が切れたクッキーを得るようです。
.Netのクッキーアップデートは、Ajaxコールによってトリガーされます。同じ.NetメソッドでCookieを複数回更新することがあります。
私が行うとき、だから私の質問は、次のとおりです。
var cookie = cookieCollection[name].Value;
なぜそれは私に期限切れのクッキーを与えるのでしょうか?期限切れでないクッキーを取得する代わりにLinqを実行することはできますか?