C# 如何在ASP.NET中存储会话数据?

C# 如何在ASP.NET中存储会话数据?,c#,asp.net,session,C#,Asp.net,Session,我们有一个使用ASP.NET的flex应用程序。(通过weborb)。 我们在.NET端使用几个数据来加载数据,例如:UserId、ChannelId等等。。。 目前只有userid存储在HttpContext.Current.Identity的名称中。 因此flex端不需要一直推送用户id,但现在我们也要禁用channelid的“推送” 我想知道我们应该在哪里“存储”这些数据。 会话是否足够节省,或者我们是否需要使用cookie?或者有没有其他方法可以解决这个“问题”会话听起来是个不错的选择。

我们有一个使用ASP.NET的flex应用程序。(通过weborb)。 我们在.NET端使用几个数据来加载数据,例如:UserId、ChannelId等等。。。 目前只有userid存储在HttpContext.Current.Identity的名称中。 因此flex端不需要一直推送用户id,但现在我们也要禁用channelid的“推送”

我想知道我们应该在哪里“存储”这些数据。
会话是否足够节省,或者我们是否需要使用cookie?或者有没有其他方法可以解决这个“问题”

会话听起来是个不错的选择。尽管有很多人反对它,除非您真的需要扩展到大量并发用户,但对于每个会话中如此少量的数据,没有理由避免它


Cookie是一个选项,但它意味着数据保存在客户端,这可能不可取,并且会使发送到服务器的每个请求都变得臃肿。

如果只是存储userId和channelId或类似的整数值,我更喜欢会话,但如果您将拥有更多的数据,而且你可能有相当多的并发会话,那么会话可能会有点重。

我建议使用
会话
,因为值随后存储在服务器上(cookies存储在客户端)。还可以使用静态类并将会话包装在那里

而不是

Session["channelid"] = ChannelId
使用

您可以将
SessionManager
声明为一个静态类,该类具有使用会话的静态属性。我相信这也是微软的普遍做法

干杯

SessionManager.ChannelId = ChannelId