I wish to create a community area on my web site that is composed not only of a forum but also an area that members can upload and download files they wish to share with other community members. Here's what I want to implement:
Users would to need to register with the community and be signed in before they could upload or download files. So the vBulletin authentication would be used not only for the forums but also for the download area. Visitors could browse files but would need to be signed in to either upload or download files.
Users would be able to search for lists based on file name, a short description field for each file, user who uploaded the file (for instance, search for all files uploaded by user vBulletin user XXX) and file category. Visitors would not need to be signed in to search but they would need to be signed in to download what they find.
The files themselves would be stored at a location on my server that can't be linked to directly. In other words, one couldn't email someone the link to a file. All downloads would have to be from the download area on the site and only available after signing in.
I'd want to be able to at some future date change the storage location of files to a different server (such as Amazon S3 storage) without having to make any major changes to the structure or implementation of the download area. The links wouldn't change - only the implementation of where the links transferred the files from.
I'm assuming that there isn't an add-on for vBulletin that will give this functionality. If I'm mistaken, great!
Assuming the download area is something I'd have to have custom built I'd want it done in ASP.NET. I know that vBulletin is all PHP but hopefully that won't create an obstacle to adding a file area developed in ASP.NET to my site that shares vBulletin user authentication.
How "do-able" does this sound? I suspect the main technical problem would be having the forum authentication being used by the file sharing area. It would be great if something like this was already available...
__DEFINE_LIKE_SHARE__