我不喜欢使用 ASP.NET 会话状态,但我们的应用程序此时正在使用它。我们使用 SQL Server 模式来保持会话状态。我正在考虑在会话状态下缓存授权检查结果,但我担心这种方法的性能。SQL Server 会话状态持久性在 .NET 中究竟是如何工作的?
据我所知,所有会话数据都存储在一个数据库行中,而数据本身存储在一列中。我担心的是,如果我们的应用程序在一个请求中执行 12 次不同的授权检查,并且每个结果在收到后立即存储,那么在存储这些项目时将发出 12 个不同的数据库请求,这将使我的任何网络请求减少无效试图完成。
每个会话状态突变是否伴随着一个同步数据库请求,或者所有会话状态更改是否在 ASP.NET 请求生命周期中一次持续存在?