//注意,需要引用System.Runtime.Serialization.Formatters.Soap.dll程序集
public const string SESSIONDATAPATH = @"C:/SessionData/" ;
private void Application_AcquireRequestState( object sender, EventArgs e)
{
System.IO.FileStream fs;
System.Runtime.Serialization.Formatters.Soap.SoapFormatter sf = new System.Runtime.Serialization.Formatters.Soap.SoapFormatter();
try
{
//获取特定的cookie,如果找不到,则退出.
HttpCookie cookie = Request.Cookies["PermSessionID"];
if(cookie == null)
{
//如果找不到,则生成一个(使用伪随机的SessionID)
cookie = new HttpCookie("PermSessionID", Session.SessionID);
//使该cookie在1星期之后到期
cookie.Expires = DateTime.Now.AddDays(7);
//将其发往客户端浏览器
Response.Cookies.Add(cookie);
}
//文件名等于该cookie的值
string permSessionId = cookie.Value;
//生成数据文件的名称
string filename = SESSIONDATAPATH + permSessionId.ToString() + ".xml";
//打开文件,如果出错,则退出
fs = new System.IO.FileStream(filename, IO.FileMode.Open);
//反序列化包含值的Hashtable Hashtable ht = (Hashtable)sf.Deserialize(fs);
//将数据移到Session集合中
Session.Clear();
foreach( string key in ht.Keys )
{
Session(key) = ht(key);
}
}
Catch(Exception ex) {}
Finally
{
if( fs != null ) fs.Close();
}
}
以上代码实现了会话持久话的过程,AquireRequestState事件处理程序中的代码会试图读取一个名为PermSessionID的特殊的客户端cookie。该cookie的值被视为一个XML(在服务器上)的名称,该XML文件包含在前一个请求结束时保存下来的Session变量的值,因此代码会在页面看到新值之前填充Session集合。如果该cookie尚不存在,说明现在看到的是从客户端发出的第一个请求。所以代码会创建cookie,并在其内部存放独一无二的字符串。同时也应该在ReleaseRequestState事件里创建一个服务端的XML文件,将所有Session变量序列化到该XML文件中。
分享到:
相关推荐
`Flask-Session`扩展使得Flask应用能够轻松实现服务器端会话管理,提供了一种在用户会话之间持久化数据的方法。通过选择合适的存储后端,并结合安全和性能的最佳实践,你可以构建出更加健壮和用户友好的Web应用。
在搭建基于Microsoft Internet Information Services (IIS) 和 WordPress 的网站时,经常面临的一个挑战是如何有效地实现URL重写(URL Rewrite),以达到美观且利于SEO优化的永久链接(Permanent Links)设置。...
Flask-RedisSession就是利用这些特性,将用户的会话信息存储在Redis中,确保数据的安全性和持久性。 使用Flask-RedisSession时,开发者首先需要在Flask应用中配置Redis连接,并安装该扩展。安装可以通过pip完成,...
for hrush less permanent-niaghei motors ever It is dcnigncd to sent the modern computer based generation of mo;or engineers, '['he book. uoe» hand-in-hand with modern software-based tedwiquer- for ...
这本书详细讨论了永磁同步电机(Permanent Magnet Synchronous Motors,简称PMSM)的控制原理和方法。作者是来自德黑兰大学电气与计算机工程学院的教授,他在电机驱动领域有着深厚的学术造诣和丰富的实践经验。 在...
Books on permanent magnet (PM) ac machine drives have focused primarily on the design of the machines and have covered the control and converters for these drives only in an elementary manner. In ...
1. **持久化中间件**:它可能提供一种中间件机制,允许开发者在请求处理过程中存储数据,并在后续请求中恢复这些数据,这对于处理跨请求的状态管理非常有用。 2. **数据库辅助操作**:该库可能会提供一些便捷的...
因此,我们需要一种全局会话管理机制来实现会话数据的共享。 **1. Redis作为会话存储** - **安装Redis**:在IP: 10.196.110.181的服务器上安装并配置Redis。 - **配置Tomcat**:在Tomcat服务器中启用Redis作为会话...
Edward Snowden - Permanent Record-Metropolitan Bo(1).pdf
然而,Flask的默认实现仅使用签名cookie来保存session数据,这可能不满足所有需求。`flask-session`扩展提供了解决方案,它支持将session数据存储在多种不同的后端,如Redis、Memcached、文件系统或MongoDB,甚至...
随着技术的不断演进,新的永磁电机拓扑结构开始找到其在应用中的首次落地,这直接推动了电机设计的创新和多样化。 4. 控制技术和设计计算方法的进步 在控制技术和设计计算方面取得的显著进步,有助于进一步提升永磁...
永磁同步电机(Permanent Magnet Synchronous Motor, PMSM)是一种广泛应用在电动汽车、工业驱动、家电等领域的电动机。它的核心特点是使用永久磁铁作为转子的磁场源,与传统交流异步电机相比,具有更高的效率、功率...
标题中的“Wind_PMSG.rar_PMSG wind_permanent magnet_permanent wind_wind”暗示了我们讨论的主题是关于风能发电系统中的永磁同步发电机(PMSG,Permanent Magnet Synchronous Generator)。这种发电机在现代风力...
1.0前言摘要2.0 Permanent Ecological 简明概述3.0 Permanent Ecological 核心技术概述3.1 Tendermin
在本次分享中,我们主要关注的是永磁同步电机(Permanent Magnet Synchronous Motor, PMSM)的设计,这是一种采用永磁体作为转子材料的电机。 首先,我们了解到永磁同步电机的主要特点:它由永久磁铁构成转子,具备...
特别是在工业自动化、汽车电子以及其他需要高效率和高性能电机的领域,这种电机有望成为主流选择。 #### 六、结论 综上所述,这种新型的线启动永磁同步电机转子结构不仅提高了电机的启动性能,而且还显著提升了...
1.0前言摘要2.0 Permanent Ecological 简明概述3.0 Permanent Ecological 应用生态概述3.1 云算力轻客户端3.
在Web开发中,Flask是一个轻量级的Python Web框架,它提供了许多功能来帮助开发者构建应用程序。...在实际项目中,你还需要考虑更多的细节,比如错误处理、session持久化和安全性等,以打造一个完整的用户认证系统。