私たちのプロジェクトには、管理アプリケーションとクライアント アプリケーションがあります。管理アプリケーションは、すべてのクライアントを管理するために使用されます。
サーバーアプリケーションにログインすると、管理者の資格情報がセッションに保存されます。
その後、別のブラウザでクライアント アプリケーションにアクセスしました。ダウンロード機能が含まれています。ダウンロード後、すべてのセッション データが消去されます。したがって、ダウンロードするたびに、管理モジュールに再度ログインする必要があります。
ダウンロードハンドラ
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 でのみ発生しますが、私の場合はすべてのブラウザーで発生します。