Simplemente que una página se encargue de gestionar los archivos que se intenten ver, es decir por ejem al tener la dirección
http://tupagina.com/download.aspx?id=25, antes de que procedas a ofrecer la posibilidad de que el usuario baje el archivo, pues tendrías que ver si éste tiene los permisos necesarios para ese archivo, si es así continuas con el proceso (normalmente abrir el archivo y escribirlo en el Stream del objeto Response).
Saludos