Вы можете попытаться создать обработчик для этой работы. Это более безопасно, если вы можете изменить хорошо.
Для этой работы вам необходимо зашифровать путь к файлу на вашей странице, где вы поместите ссылку для файла.
<a href=\"Downloads.ashx?f={0}\" target=\"_blank\">Your link to file</a>
//{0} -> Encrypted file path
//target = _blank force browser to download file in another window
Есть множество методов шифрования в здесь
На странице Обработчик необходимо расшифровать путь к файлу в исходный, чтобы его можно было прочитать с помощью библиотек System.IO
.
context.Response.ContentType = ""; //-->MimeType for your file's extension
Вы можете указать свой MimeType по Реестру, если ваш тип mime не является статичным в качестве изображений.
string mimeType = Registry.GetValue(string.Format(@"HKEY_CLASSES_ROOT\.{0}",
Path.GetExtension(decryptedfilePath)), "Content Type", null).ToString();
//Then everything is ready for download
byte[] buffer = File.ReadAllBytes(decryptedfilePath);
context.Response.OutputStream.Write(buffer, 0 , buffer.Length);
context.Response.Flush();
Удачи.