キーのタイムアウトを他のキーとは異なる方法で管理したいと考えています。
出来ますか?
User
つまり、" " と " "という 2 つのセッション キーについて考えてみましょうRedirectUrl
。User
" " セッション オブジェクトを 1 時間保持し、" " セッション オブジェクトを 1 分間保持したいと思いRedirectUrl
ます。
この問題にどう対処すればよいですか?
別のオブジェクトで期限切れにするセッション値をラップすることをお勧めします。
[Serializable]
public class SessionUser
{
public User User { get; set; }
public DateTime Expires { get; set; }
}
[Serializable]
public class SessionRedirectUrl
{
public Uri RedirectUrl { get; set; }
public DateTime Expires { get; set; }
}
各セッション値を期限切れにするメカニズムがあった場合、とにかく有効期限をチェックするロジックが必要になります。
ただし、イカルスが述べているように、説明している機能はセッションの問題ではなくキャッシュである可能性があります。
そのままでは、Session クラスを思いどおりに使用する方法はありません。これには独自のソリューションを使用する必要があります。
Cache
一定時間後に特定のオブジェクトを期限切れにできるメカニズムがありますが、Cache
すべてのセッションで共有されるため、シナリオには適していない可能性があります。
ユーザーを区別できるようにキーの先頭にある種の一意の識別子を追加する場合 (たとえば、すべてのキーにユーザー ID を先頭に追加するなど) は、キャッシュを使用してこれを行うことができますが、それでもスケーラビリティについて考える必要があります。このアプローチの。