ASP.NET Core & Identity 3 を使用しています。
ログインすると、現在選択されているユーザーの UI テンプレートを読み取り、ファイルにこのテンプレートに基づいて_Layout.cshml
ロードします。css
ユーザーは自分のテーマを変更でき、コントローラーを介してセッション変数に保存します
public IActionResult ChangeTheme(int id, string returnUrl)
{
HttpContext.Session.SetInt32("Template", (id));
return Redirect(returnUrl);
}
ロードごとにデータベースにクエリを実行する代わりにcshtml
、テンプレートをセッション変数に入れ、テンプレートにLayout.cshtml
応じて異なる css をレンダリングします。
switch (template)
{
case (int)TemplateEnum.Template2:
<text>
<link rel="stylesheet" href="~/css/template1.css" />
</text>
break;
case (int)TemplateEnum.Template2:
<text>
<link rel="stylesheet" href="~/css/template2.css" />
</text>
break;
{
セッションの有効期限が切れたらどうなるのだろうと思っています。
_Layout.cshtml
my is there とにかく値にアクセスしてnullになった場合にそれをキャッチし、新しいページがレンダリングされる前にすぐにdbからロードすることを考慮してください。私は Identity 3 を使用しているので、Claims の方がよいオプションでしょうか? 私は前にそれを使用したことがありません。上記の私の例のコードは何でしょうか
私のシナリオに適した別のオプションはありますか?