概要
VisualStudio2019にて、ASP.NET Core 3.1 MVCのWebシステム開発を行っています。
C#のプログラムでCOOKIEに値を登録しているのですが、VisualStudio2019のデバッグ(IISExpress環境)を終わらせて再度デバッグ実行を行うと、COOKIEに登録した値が消えてしまいます。
デバッグ実行中なら、正常にCOOKIEに値を取得することが出来ます。
また、同一環境の別PCでは、デバッグ実行を終わらせて再度デバッグ実行を行ってもCOOKIEの値が保持出来ています。
VisualStudioやIISExpressなどの、何かしらの設定が影響しているとしか思えないのですが、原因が分からない状況です。
デバッグ実行の度にCOOKIE値がクリアされてしまってはテストの効率が非常に悪いので、解決策があれば教えていただきたいです。
ブラウザについて
デバッグ実行時に自動的にEdgeが起動しますが、クロームでアクセスを行っても結果は同じです。
COOKIEに保存する内容・タイミング・方法など
COOKIEに保存する内容はログイン情報のIDの文字列で例えば"XXX"です。下記のコードで設定と取得を行っています。
ログイン時にCOOKIEを設定し、デバッグ実行時最初にアクセスされるコントローラ内で設定したCOOKIEが存在すれば取得しています。
下記のコードで設定・取得を行っています。
コード内の_httpContextAccessorはコンストラクタでDIしたHttpContextにアクセスを行うクラスです。
C#
1/// <summary> 2/// COOKIEに文字列を設定 3/// </summary> 4public void CookieSetString(string key, string value) 5{ 6 if (value != null) 7 { 8 _httpContextAccessor.HttpContext.Response.Cookies.Append(key, value); 9 } 10} 11 12/// <summary> 13/// COOKIEから文字列を取得 14/// </summary> 15public string CookieGetString(string key, string defaultValue = null) 16{ 17 string ret = defaultValue; 18 string value = _httpContextAccessor.HttpContext.Request.Cookies[key]; 19 if (string.IsNullOrEmpty(value) == false) 20 { 21 ret = value; 22 } 23 return ret; 24}
アドバイスいただければ幸いです。