ASP.Net中是否有标准方法在Web请求之间共享资源?
这是我的问题:
话虽如此,将此会话同时提供给多个页面/请求的最佳方法是什么?如何在会话到期后确保在重新登录后共享新会话?
这一切都在一台服务器上运行。
答案 0 :(得分:1)
我会将整个Web服务包装在类似服务的类中,并使用类似于ninject的IoC来管理该服务的实例。然后,您应该在ninject中提出custom scope以使过期的会话无效。
然后在您的asp .net中,每个需要访问该Web服务资源的请求都应该要求ninject返回您创建的服务的实例。只要会话有效,ninject就会设法始终返回相同的实例(假设您已经获得了自定义范围)。
答案 1 :(得分:0)
我认为您正在寻找的是用于保持数据通过会话的“会话”变量。
http://msdn.microsoft.com/en-us/library/aa287606(v=vs.71).aspx
- 编辑--- .net的Application对象是你正在寻找的,它适用于3.0:msdn.microsoft.com/en-us/library/ms178594(v = vs.85).ASPX
通过这种方式,您可以在服务器中运行应用程序来保存状态变量。
答案 2 :(得分:0)
如果您的站点在单个服务器上运行,您可以将服务的会话字符串存储在Cache中,该字符串具有与服务器进程相对应的最大生命周期和可见性,而不是客户端的一个会话。 / p>
然后,您的代码的任何部分都可以轻松获取当前会话信息,并在新会话尚未处于缓存中时建立新会话。如果您将缓存生命周期安排为略短于服务的会话生命周期,那么您将永远不会看到会话因过期而拒绝您 - 您自己的缓存副本将始终首先到期。