在我们的项目中,我们有一个管理应用程序和一个客户端应用程序。管理应用程序用于管理所有客户端。
因此,当我登录到服务器应用程序时,管理员凭据保存在会话中。
之后,我在另一个浏览器中访问了客户端应用程序。它包含下载功能。下载后发生的是它清除所有会话数据。因此,每次下载后,我都需要在管理模块中再次登录。
下载处理程序
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 中,但就我而言,它发生在所有浏览器中。