2013-06-04 70 views
1

我在DNN中創建了一個模塊,它有一個子文件夾,其中包含模塊使用的幾個文件,但我不想讓公衆訪問該文件。作爲DNN的新手,我原本以爲只需添加一個Web.config並在授權部分設置拒絕用戶=「*」即可。現在看來,儘管DNN攔截了所有請求並忽略了Web.config,因爲此設置似乎沒有效果。DotNetNuke安全模塊文件夾

用戶當前只能通過猜測文件名並導航到(http://mysite.com/DesktopModules/mymodule/restricted_files/guessedfile.pdf)來訪問這些文件。我怎樣才能防止這種情況發生?

回答

2

DotNetNuke允許您在文件系統中擁有different providers for folders。如果您使用這些提供程序(而不是直接與文件系統交互),那麼您可以確保DNN控制文件夾中文件的權限。

內置於DNN中的是三種提供程序:標準,安全和數據庫。如果您使用安全或數據庫提供程序創建文件夾,那麼DNN將確保您無法通過猜測路徑來獲取文件(通過將.resources附加到文件名,哪個IIS不會提供服務,或者通過將它在數據庫中)。然後,您可以爲文件夾分配權限(通過管理菜單中的文件管理器頁面),以指示誰可以訪問這些文件(除非您使用主機文件系統,否則網站管理員將始終能夠訪問這些文件) 。

但是,這些文件夾提供程序僅適用於網站中的Portals目錄。建議您將內容文件存儲在那裏,而不是在DesktopModules

+0

感謝您的協助。這些文件將隨模塊分發。您如何指導安裝程序將這些文件放入Portals下的安全文件系統文件夾中? – Blazanor

+0

您的模塊的業務控制器類可以實現['IPortable'](http://www.dotnetnuke.com/Resources/Wiki/Page/IUpgradeable.aspx)在安裝後運行代碼。您也可以在清單中通過''元素指示文件應該結束於特定的文件夾中,例如, Portals/_default/MyFiles(請參閱[清單的File組件上的wiki頁面](http://www.dotnetnuke.com/Resources/Wiki/Page/Manifest-File-Component.aspx)) – bdukes