我想以與其他密鑰不同的方式管理密鑰的時間密度。管理單個密鑰的ASP.NET會話超時
可能嗎?
我的意思是,讓我們考慮兩個會話密鑰:「User
」和「RedirectUrl
」。我想保留1小時的「User
」會話對象和1分鐘的「RedirectUrl
」會話對象。
我該如何處理這個問題?
我想以與其他密鑰不同的方式管理密鑰的時間密度。管理單個密鑰的ASP.NET會話超時
可能嗎?
我的意思是,讓我們考慮兩個會話密鑰:「User
」和「RedirectUrl
」。我想保留1小時的「User
」會話對象和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; }
}
如果有對到期就需要邏輯反正檢查有效期限每個會話價值的機制。
但是,正如Icarus所述,您所描述的功能可能是緩存而不是會話關注點。
開箱即用,無法以您想要的方式使用Session類。你必須爲此使用你自己的解決方案。
Cache
確實有一種機制,允許您在一段時間後過期特定對象,但由於Cache
在所有會話中共享,因此可能不適合您的方案。
如果您仍然可以使用緩存來執行此操作,但您仍然可以區分不同用戶(例如,將用戶ID添加到每個密鑰),但仍然必須爲該密鑰添加某種唯一標識符想想這種方法的可擴展性。
是的,我不需要達到會議表現。我想我會在檢索包裝對象後添加自己的邏輯,謝謝 –