私の Web サイトには、ユーザーの名と姓を示す小さなメニューが右上隅にあります。この作品を部分的なビューに入れました。これはすべてのページに表示されるため、ページが読み込まれるたびにユーザーの情報を取得する必要がないように、明らかにキャッシュすることを考えています。これをキャッシュまたはセッションデータに保存する必要がありますか?また、すべてのページにある場合、このデータをキャッシュするコードをどこに作成する必要がありますか?
5 に答える
シナリオに従って、あなたは間違いなくキャッシュを使うべきです。そしてあなたが言ったように、あなたはすでに部分的なビューとしてメニューを持っています
[OutputCache(Duration = 3600)]
public ActionResult mymenu()
{
return PartialView();
}
サイト全体で必要なすべての便利なパラメーターを設定する User オブジェクトを作成することを好みます。
このオブジェクトは、サイトに応じてセッションまたはデータベースに保存されます
ユーザー情報は、キャッシュではなく、セッションに保存することをお勧めします。キャッシュはほとんどがアプリケーション レベルであり、セッションはユーザー/セッションごとです。キーを (セッションまたは Cookie によって) 提供することで、ユーザーごとの情報をキャッシュに保存できます。
この記事は役に立つかもしれません:- cache-session-viewstate-c#
ASP.Net キャッシュについて言及している場合、そこに格納されている情報は、マシン上で実行されている任意の .Net ページで利用できます。あなたの場合、セッションの方が適切だと思います。
使用している認証メカニズムはわかりませんが、既に次の場所に保存されている可能性があります。
HttpContext.Current.User
また
System.Threading.Thread.CurrentPrincipal