「ASP.NET CoreのセッションをRedisに保存する」の版間の差分

編集の要約なし
 
(同じ利用者による、間の2版が非表示)
2行目: 2行目:




== 実装 ==
== 前提 ==
=== 前提 ===
* ASP.NET Core 8.0.1
* ASP.NET Core 8.0.1


=== nuget ===
== nuget ==
[[Redis]]の[[NuGet]]を入れる。
* Microsoft.Extensions.Caching.StackExchangeRedis
* Microsoft.Extensions.Caching.StackExchangeRedis


=== appsettings.json ===
== appsettings.json ==
ConnectionStringsにredisの設定を書く。
ConnectionStringsにredisの設定を書く。
<source lang="json">
<source lang="json">
26行目: 26行目:
</source>
</source>


=== service ===
== serviceとapp ==
 
appsettings.jsonを読み込みredisサービスを追加する。
appsettings.jsonを読み込みredisサービスを追加する。
<source lang="csharp">
<source lang="csharp">
55行目: 54行目:


=== セッションの暗号化 ===
=== セッションの暗号化 ===
asp.net coreではセッションデータが暗号化されます。
asp.net coreではセッションデータ(や一時データなどはすべて)は問答無用で暗号化されます。デバッグ時であろうと無効化はできないっぽいです。その関係で初期状態のままでは複数のサーバー(異なるアプリ)でデータ共有することができません。このままではバックエンドに[[redis]]を使っている意味ないです。はい。
その関係で初期状態のままでは複数のサーバー(異なるアプリ)でデータ共有することができません。


暗号化の設定は2パターンあります。
暗号化の設定は2パターンあるようです。
* アプリ名を統一する
* アプリ名を統一する
* 共通のキーを使う
* 共通のキーを使う
なお、無効化はできないっぽいです。


複数のウェブサーバーのセッションを共有するだけならアプリ名の統一が簡単です。
複数のウェブサーバーのセッションを共有するだけならアプリ名の統一が簡単です。