我想创建一个全局会话,除非我们手动终止它,否则它将保持活动状态。如何用c#在asp.net中做到这一点 我在做什么
HttpContext.Current.Session["UserID"] = someValue;
但是这样会话会在一段时间后丢失。
答案 0 :(得分:1)
将数据存储在Application状态中。它会留在那里,直到你删除它,或应用程序死亡/回收/结束。
用法:
HttpContext.Current.Application["Foo"] = "bar";
答案 1 :(得分:1)
您可以在system.web - >下的web.config中设置超时。 sessionState - >超时。不确定你是否可以进行无限会话。
此外,您可能对Application对象感兴趣,该对象将内容存储在“应用程序会话”中而不是用户的内容中。我想到了,因为你说的是“全球”会议。
这是什么应用?听起来你实际上是在尝试将会话用作持久性存储,但即使你设法将超时设置为从不或5年或者其他任何事情,它们似乎只会工作 - 因为一旦应用程序重新启动,会话将“超时” 。您可能仍然可以解决这个问题,但您最好还是寻找像数据库这样的真正持久性解决方案。当然,我可能完全猜不到你的申请。
答案 2 :(得分:0)
正如nicolas78所说,使用会话超时配置属性来控制用户不活动后的会话到期时间。如果您在浏览器打开时遇到会话应该处于活动状态的要求,则有两种方法 -
答案 3 :(得分:0)
也许你是在追踪个人资料?
http://msdn.microsoft.com/en-us/library/2y3fs9xs.aspx
配置文件存在于会话之外,通常用于存储用户可以编辑的每个用户设置,例如其联系人详细信息和应用程序首选项。
配置文件可以与匿名用户和经过身份验证的用户一起使用。当匿名用户登录时,他们的匿名配置文件可以迁移到经过身份验证的配置文件(即附加到其用户名的配置文件)。
这里有很好的演练:http://quickstarts.asp.net/quickstartv20/aspnet/doc/profile/default.aspx