ASP.Net从会话数据库中读取值

问题描述:

如果我使用session out proc到SQL Server,它会将会话对象存储为序列化为项目列的类型为VarBinary的类型。如何从会话数据库读取数据?ASP.Net从会话数据库中读取值

为什么不像往常一样通过键/集合来加入会话对象?

会话[关键]

SQL Server中的会话存储抽象,你不需要依赖于不同的存储方式来使用会话对象(内存,SQL,自定义,...)

+0

我需要根据会话ID访问会话对象。例如,一个用户现在登录并且会话已存储。然后,稍后在该用户的后续访问中,我想从过去的访问中检索会话值。 – rocky

+0

好的,有一种方法可以从DB反序列化会话数据,请参见底部。但是,这是不好的方式,你应该反而坚持你需要访问的数据,稍后在一个配置文件,或watever自定义表... 我不是一样的返回这个建议http://*.com/问题/ 23527727 /序列化和反序列化会话数据 还行,如果你坚持;-)这是应该帮助你阅读那些邪恶数据的东西http://*.com/questions/967497/asp -net-SessionState的-使用-SQL服务器是最数据加密 –

从您对另一个回复的评论:

我需要根据会话ID访问会话对象。例如,一个用户现在登录并且会话已存储。

这不是这样做的。会话数据应该是暂时的。当用户退出时,不应该期望会话状态提供者会挂在任何相关信息上。对于这些数据,实际上你打算将它保存在一次会话之外,这对会话提供者来说是超出范围的。如果你想保存它,在数据库中创建一些表格,并找到一些方法将表格中的数据绑定到用户标识符。