Since the 3.0 release, DotNetNuke has supported the concept of folder types (this concept was further extended with the 6.0 release with Folder providers
). A folder type is an abstraction allowing DotNetNuke to determine the storage details of a file, but that still exposes the file as though it were a part of the underlying filesystem.
There are 3 folder types that ship with DotNetNuke, though additional ones can be added with Folder providers
The standard file system simply stores the file within the filesystem of the DotNetNuke application. This is the default and most commonly used folder type as the majority of files in a system are available to all users e.g. css/js/images.
When a user creates a folder as a secure folder, DotNetNuke will append a ".resources" extension to any files within that folder. As ".resources" is mapped to the 404-handler automatically by asp.net it means that a request to that file will be ignored i.e. if a user knew or could guess the URL, a request for "www.mysite.com/portals/0/wages.xls" would serve up that file. However a request for "www.mysite.com/portals/0/wages.xls.resources" would be denied.
This is a good way to protect files against anonymous downloads, and also has minimal overhead as the only additional work DotNetNuke needs to do is append the ".resources" extension and know to ignore it when returning lists of files for this folder type. Files in these types of folders are only accessible via linkclick.aspx links, which allow DotNetNuke to verify permissions before deciding if the request should serve the file.
This option is similar to secure filesystem, except that the files are stored in the database. Whilst this is as effective as secure filesystem (and in some cases useful as it does not require syncronisation of the files in a webfarm), reading and writing to a database has more overhead than working with a filesystem. In addition, installs typically have much less database space than filesystem space, so care should be taken when selecting this choice
ReferencesDotNetNuke Folder types explained