2

以前の作業 (ASP.NET Web フォーム) では、HttpContext.Current.Sessionオブジェクトを使用して、現在のユーザー セッションのセキュリティ関連のユーザー データを保持しました。

Session("userID") = 4525
Session("customerId") = 123
Session("importantValue") = "ABC"

WebAPI 2 についてかなりのことを学んだので、MVC を学び始めています。私は常にそれを読んでいます、Sessionおよび/またはHttpContext.CurrentMVCでは避けるべきです...

  1. 同期とオーバーヘッド
  2. セッションが HTTP を汚染する
  3. アプリケーションの衝突
  4. AppPool のリサイクル

...しかし、単純な代替案についてはあまり明確ではありません。クッキーを使う人もいればTempData、クッキーを使う人もいますが、どちらにも欠点があります。

私のアプリケーションはデータベースが重いので、データベースにアクセスしてリクエストごとにこれらの値を再読み取りすることを避けたいと考えています。WebAPI2 には、Cookie としてシリアル化されるベアラー トークンがあります。ID トークンは、このデータを保持し、ユーザーによる改ざんを回避するのに十分安全ですか (SSL 経由で使用する場合)?

4

1 に答える 1