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

3
我们有一个与ASP.NET配合使用的Flex应用程序(通过WebORB)。 我们在.NET端使用多个数据来加载数据,例如:UserId、ChannelId等等。 目前只有userid存储在HttpContext.Current.Identity的名称中。 因此,flex端不需要一直推送用户ID,但现在我们还想禁用channelid的“推送”。 我想知道我们应该在哪里“存储”这些数据。 使用Session是否足够安全?或者我们需要使用Cookie?或者还有其他方法解决这个“问题”。
3个回答

9
我建议使用Session,因为值会存储在服务器上(而不是存储在客户端的cookie中)。同时使用一个静态类并将会话封装在其中会更好。
不要使用
Session["channelid"] = ChannelId

使用

SessionManager.ChannelId = ChannelId

你可以将SessionManager声明为一个静态类,其中包含使用会话的静态属性。我相信这也是微软的通用做法。
祝好

1

对于这个问题,Session听起来是一个不错的选择。虽然有很多人对它持反感态度,除非你真的需要扩展到非常大量的并发用户,否则没有理由避免在每个会话中使用少量数据。

Cookies也是一种选择,但它意味着数据保存在客户端,这可能不是理想的情况,并且会增加发送到服务器的每个请求的负担。


0
如果只是存储userId和channelId或类似的整数值,我更喜欢使用session,但如果您要存储的数据比这些更多,并且同时可能有大量并发会话,则session可能会有点重。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接