2

キーのタイムアウトを他のキーとは異なる方法で管理したいと考えています。

出来ますか?

Userつまり、" " と " "という 2 つのセッション キーについて考えてみましょうRedirectUrlUser" " セッション オブジェクトを 1 時間保持し、" " セッション オブジェクトを 1 分間保持したいと思いRedirectUrlます。

この問題にどう対処すればよいですか?

4

2 に答える 2

1

別のオブジェクトで期限切れにするセッション値をラップすることをお勧めします。

[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; }
}

各セッション値を期限切れにするメカニズムがあった場合、とにかく有効期限をチェックするロジックが必要になります。

ただし、イカルスが述べているように、説明している機能はセッションの問題ではなくキャッシュである可能性があります。

于 2012-12-31T18:00:05.430 に答える
1

そのままでは、Session クラスを思いどおりに使用する方法はありません。これには独自のソリューションを使用する必要があります。

Cache一定時間後に特定のオブジェクトを期限切れにできるメカニズムがありますが、Cacheすべてのセッションで共有されるため、シナリオには適していない可能性があります。

ユーザーを区別できるようにキーの先頭にある種の一意の識別子を追加する場合 (たとえば、すべてのキーにユーザー ID を先頭に追加するなど) は、キャッシュを使用してこれを行うことができますが、それでもスケーラビリティについて考える必要があります。このアプローチの。

于 2012-12-31T17:06:40.583 に答える