0

在我们的项目中,我们有一个管理应用程序和一个客户端应用程序。管理应用程序用于管理所有客户端。

因此,当我登录到服务器应用程序时,管理员凭据保存在会话中。

之后,我在另一个浏览器中访问了客户端应用程序。它包含下载功能。下载后发生的是它清除所有会话数据。因此,每次下载后,我都需要在管理模块中再次登录。

下载处理程序

                if (context.Request["fileUrl"] != null)
                {
                    fileUrl = context.Request["fileUrl"].ToString();                    
                }
                string filename = System.IO.Path.GetFileName(fileUrl);    
                context.Response.ClearContent();
                   context.Response.ContentType = "application/exe";
                context.Response.AddHeader("content-disposition", String.Format("attachment; filename={0}", filename));
                context.Response.TransmitFile(fileUrl);                
                context.Response.Flush();

我使用 iframe 进行下载。所以我会在点击下载按钮时设置 iframe 的来源

文件隐藏代码

iframeDownload.Attributes["src"] = "DownloadHandler.ashx?fileUrl=" + downloadUrl;
//code to be executed after download
//here i am enabling a timer control

但我找不到为什么在下载后会话被清除。我在这个 SO 帖子中发现了一个类似的问题。 文件下载后会话过期

但对他来说,它只发生在 IE 中,但就我而言,它发生在所有浏览器中。

4

1 回答 1

1

实际上,在成功下载后的代码中,我们需要从我的应用程序中删除一个文件夹。这会导致 App_domain 重新启动。

参考:所以从 ASP.NET 应用程序中删除目录返回到新会话

于 2012-07-24T09:50:07.720 回答