たぶん私はこれについていくつかの基本を見逃しているかもしれません、私はフォーム認証がセッションの上に構築されていない理由を理解していません。
フォーム認証のタイムアウトとセッションのタイムアウトに関していくつか問題がありました。このようなブログ投稿のおかげで、これらの問題を回避する方法を理解しています。
しかし、なぜそれらは分離されているのでしょうか?
たぶん私はこれについていくつかの基本を見逃しているかもしれません、私はフォーム認証がセッションの上に構築されていない理由を理解していません。
フォーム認証のタイムアウトとセッションのタイムアウトに関していくつか問題がありました。このようなブログ投稿のおかげで、これらの問題を回避する方法を理解しています。
しかし、なぜそれらは分離されているのでしょうか?
フォーム認証がセッションの上に構築されていない理由がわかりません。
フォーム認証は、すべてのアプリケーションで共通の Cookie を使用します。現在認証されているユーザー名のみが Cookie に保存されます。一方、セッションは、サーバーに保存されているため、任意の大きな値を保存できます。任意の大きなデータを Cookie に永続化することはできません。セッション状態には多くの問題があります。たとえば、Web ファームで実行している場合、Web ファームのすべてのノードが同じセッション データを共有できるように、デフォルトの InProc の代わりにプロセス外セッションの永続性を使用していることを確認する必要があります。個人的には、アプリケーションでセッションを使用することはありません。最初に行うことは、web.config ですべてのセッション状態を無効にすることです。
<sessionState mode="Off" />
このようにして、私のプロジェクトに取り組んでいる開発者は、ASP.NET セッションを使用するという間違いを犯すことはないと確信しています。これらは、ステートレスであることを意図した Web アプリケーションをステートフルに変換します。
クッキーを使用すると、そのような問題はありません。サーバーの状態を気にすることなく、増加するユーザー負荷に直面するために、必要な数のノードを Web ファームに投入できます。
Basicは、そのうちの 1 つだけを使用することを選択する人もいれば、2 つの異なるモジュールであるため、どちらもカスタム モジュールを作成するためのインターフェイスを提供するためです。
また、1 人のユーザーが認証されていないセッションを持つことができます。
また、(私のような) 一部のユーザーは、完全にカスタム セッション モジュールを作成できますが、認証モジュールは保持します。
したがって、これは 2 つの異なるモジュールであり、接続することはできません。