You should not provide a direct link to the file, you are creating something like a proxy (I believe that the HTTP handler is suitable for this). In the handler, you check that the user is authenticated (perhaps check some value from the session), if so, than the return file, otherwise the return was not found or something else.
So the URLs for all files will look like this:
http:
source
share