将ASP经典设置为ASP.NET会话共享解决方案设置cookie过期

问题描述:

我正在实施this link的会话共享结构,以便ASP经典网站开始逐步转换为ASP.NET。我试图延长Cookie到期时间,以便用户在会话过期时不会退出网站。在其中SessionPage.cs创建的cookie的地方我已经添加在CreateNewSessionCookie()方法行:将ASP经典设置为ASP.NET会话共享解决方案设置cookie过期

cookie.Expires = DateTime.Now.AddDays(14); 

现在这工作得很好,但是,它只能在用户第一次访问的ASP。 NET页面,然后然后访问ASP经典页面。如果访问ASP经典页面第一个(通过Firefox查看cookie确认根据我是否先访问ASP或ASP.NET页面给出不同的到期值),则它不起作用。我仍然有点模糊关于这个实现背后的机制,因为我没有完全理解会话和cookie处理。但是,我会认为VB6 SessionMgr对象正在调用SessionUtility DLL,因此使用相同的代码来发出Cookie。我使用gacutil重新注册了SessionUtility,并使用regasm重新公开它。当用户访问ASP经典页面时,还有其他什么内容?我如何更改到期时间?

这可能是一个总劈,但因为你没有任何解答...

通过迭代Request.Cookies集合在传统的ASP,找到会话cookie(你应该能够人物哪一个是相当容易的)。然后重新发出该cookie Response.Cookies(sessioncookiename)= sessioncookievalue并设置 Response.Cookies(sessioncookiename).Expires = Now()+ 14

+0

谢谢,我正在与此。它使我无需将登录页面重写为ASP.NET。所以我认为这是一个非常合理的解决方法。 – marekc 2010-06-30 07:39:00

+0

@spiderdijon在这里发布你的代码,如果你得到它的工作,我会修改答案,以显示它的作品(或不) – 2010-07-02 17:00:58