直接聞いてもわからないので、事情を説明します。
クライアント用のポータルがあり、クライアントは次のようにサイトにアクセスします。
http://url.com/webporta/ {彼らの GUID}/
GUID は、サイトに読み込まれる css ファイルを決定します。
<link href="@Url.Content(string.Format("~/Content/{0}.css", GetCookieInfo.CssFile))" rel="stylesheet" type="text/css" />
私は css ファイル名を読み取り、サイトにアクセスするたびに Cookie を再設定して、現在の値を確認しています。
これは、サービス呼び出しからデータベースを読み取り、Cookie を書き出す場所です。
var css = client.GetCssFile(id);
if (string.IsNullOrEmpty(css))
{
sb.AppendLine("Setting css to 'Site' default since GetCssFile returned null or empty.");
css = "Site";
}
そして、それを書き込むために呼び出されるメソッド:
var httpCookie4 = HttpContext.Current.Request.Cookies.Get(CookieEnums.CssFile.ToString());
return httpCookie4 != null ? httpCookie4.Value : "Site";
これは、別の GUID でアクセスするまで問題なく機能します。Cookie を「再読み込み」する唯一の方法は、CTRL-F5 を押してページを強制的に更新することです。
読み込み時にサイトに Cookie を再読み込みさせることができないか、少なくとも方法がわからないため、これよりも良い方法が必要です。
これを処理するより良い方法に関する提案はありますか?
========== 編集 #1 ===========
最初にセッションを試しましたが、タイムアウトに問題がありました。また、この投稿で Cookie を使用するよう提案されました: How reliant I be on Session