Is there someone who wants to fix this? I made my own httphandler to replace yours:
public void ProcessRequest(HttpContext context)PortalSettings _portalSettings = PortalController.GetCurrentPortalSettings();// get TabId
{
TabId =
}
Int32 TabId = -1;if (context.Request.QueryString["tabid"] != null )Int32.Parse(context.Request.QueryString["tabid"]);// get ModuleId
{
ModuleId =
}
Int32 ModuleId = -1;if (context.Request.QueryString["mid"] != null )Int32.Parse(context.Request.QueryString["mid"]);// get the URL
{
URL =
}
{
URL =
URL2 = URL;
}
{
URL = context.Request.QueryString[
URL2 = URL;
{
URL =
string URL2 = string.Empty;string URL = string.Empty;bool blnClientCache = true;bool blnForceDownload = false;if (context.Request.QueryString["fileticket"] != null )"FileID=" + UrlUtils.DecryptParameter(context.Request.QueryString["fileticket"]);if (context.Request.QueryString["userticket"] != null )"UserId=" + UrlUtils.DecryptParameter(context.Request.QueryString["userticket"]);if (context.Request.QueryString["link"] != null )"link"];if ( URL.ToLower().StartsWith("fileid="))string.Empty; // restrict direct access by FileID
}
}
{
{
URL = DotNetNuke.Common.
}
{
if ( URL != string.Empty )TabType UrlType = DotNetNuke.Common.Globals.GetURLType(URL);if (UrlType != TabType.File)Globals.LinkClick(URL, TabId, ModuleId, false);if (UrlType == TabType.File && URL.ToLower().StartsWith("fileid=") == false)// to handle legacy scenarios before the introduction of the FileServerHandler
URL =
}
FileController objFiles = new FileController();"FileID=" + objFiles.ConvertFilePathToFileId(URL, _portalSettings.PortalId);// get optional parameters
{
blnClientCache =
}
{
blnForceDownload =
}
if (context.Request.QueryString["clientcache"] != null)Boolean.Parse(context.Request.QueryString["clientcache"]);if (context.Request.QueryString["forcedownload"] != null || context.Request.QueryString["contenttype"] != null)Boolean.Parse(context.Request.QueryString["forcedownload"]);// update clicks
{
objUrls.UpdateUrlTracking(_portalSettings.PortalId, URL2, ModuleId, -1);
}
UrlController objUrls = new UrlController();if (URL2 != String.Empty)else
{
objUrls.UpdateUrlTracking(_portalSettings.PortalId, URL, ModuleId, -1);
}
// clear the current response
context.Response.Clear();
{
switch (UrlType)case TabType.File:// serve the file
{
{
context.Response.Write(DotNetNuke.Services.Localization.
}
}
if (TabId == Null.NullInteger)if (false == FileSystemUtils.DownloadFile(_portalSettings.PortalId, Int32.Parse(UrlUtils.GetParameterValue(URL)), blnClientCache, blnForceDownload))Localization.GetString("FilePermission.Error"));else
{
{
context.Response.Write(DotNetNuke.Services.Localization.
}
}
if (false == FileSystemUtils.DownloadFile(_portalSettings, Int32.Parse(UrlUtils.GetParameterValue(URL)), blnClientCache, blnForceDownload))Localization.GetString("FilePermission.Error"));break;case TabType.Url:// prevent phishing by verifying that URL exists in URLs table for Portal
{
if (objUrls.GetUrl(_portalSettings.PortalId, URL) != null)// redirect to URL
context.Response.Redirect(URL,
}
true);break;default:// redirect to URL
context.Response.Redirect(URL,
}
}
}
true);break;
{