Files
BeWoPlaner/Host/Download.aspx.cs
2025-11-28 14:54:24 +01:00

55 lines
1.7 KiB
C#

using System;
using System.IO;
using System.Security;
using System.Web.UI;
using BeWo.Data;
using BS.Shared.Core;
using SecurityUtils = BeWo.Service.Security.SecurityUtils;
public partial class Download : Page
{
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!SessionFacade.IsUserLoggedIn())
{
throw new SecurityException("Invalid authentication");
}
var token = this.Request.Params["token"];
if (SecurityUtils.CheckToken(token, Request.Url.ToString()))
{
string lFileID = this.Request.Params["fileid"];
string lPath = BS.Shared.Core.Utils.CreateSavePath(AppDomain.CurrentDomain.BaseDirectory, lFileID + ".tmp");
using (FileStream uFileStream = File.Open(lPath, FileMode.Open))
{
using (StreamReader uSr = new StreamReader(uFileStream))
{
this.Response.Write(Utils.MyHtmlEncode(uSr.ReadToEnd()));
}
}
File.Delete(lPath);
this.Response.AddHeader("content-disposition", "attachment;filename=BeWoDokument" + Path.GetExtension(lFileID));
this.Response.Charset = string.Empty;
this.Response.ContentType = "application/" + Path.GetExtension(lFileID);
this.Response.End();
}
else
{
this.Response.Write("Ungültiger Link!");
}
}
catch (Exception ex)
{
this.Response.Write(ex.ToString());
}
}
}