🐙
保護されたローカルストレージを使う (Blazor Server)
はじめに
この記事は、以下を下敷きにしています。
やりたいこと
ユーザ毎のデータを永続化する場合に、サーバ側で管理せずに、クライアント側で簡易に保持したい場合があります。
ブラウザのローカルストレージをクライアント側のkey–valueストアとして使います。
実装
ProtectedBrowserStorage
を使います。
ストレージの内容は暗号化されるため、(復号鍵を持たない)クライアント側では可読になりません。
サーバ側ページで使用することが前提になります。
復号鍵は、同一ドメインに配置された複数のアプリ間で共有していません。
ここでは、AppDomain.CurrentDomain
からアプリ識別子を得てストレージのキーに前置することで、キーの一意性を担保しています。
使用例
プリレンダリング中は、まだJSを実行可能なページが存在しないので、OnAfterRenderAsync
で読み出します。
以下の例では、メインレイアウトに配置することで、アプリ全体に作用するモードの保持に使用しています。
おわりに
お読みいただきありがとうございました。
執筆者は、Blazor、ASP.NETなど諸々において初学者ですので、誤りもあるかと思います。
お気づきの際は、是非コメントや編集リクエストにてご指摘ください。
あるいは、「それでも解らない」、「自分はこう捉えている」などといった、ご意見、ご感想も歓迎いたします。
Discussion