我想阻止用戶訪問我的「〜/ Content/...」文件夾,我在「Global.asax.cs」中將其編寫爲如下所示,並將此行代碼放在每個其他路徑的頂部 routes.IgnoreRoute("Content/{*pathInfo}");
但它不起作用。實際上用戶可以通過在瀏覽器中鍵入URL來查看內容文件夾中的每個文件。 我錯過了什麼?爲什麼我的IgnoreRoute不起作用?
4
A
回答
4
你是怎麼知道它不起作用的?舉例說明。
您可能已將它放在路由表中。因此,請嘗試將其向上移動,以便將其添加到路由表的第一個。路線集合是路線的有序列表。
也試試這個:Routes.IgnoreRoute("Content/");
,但你的版本忽略也是正確的,它應該工作。
最後,當你說用戶可以看到內容文件夾的所有內容時,我不知道你的意思:難道那不是重點嗎?用戶必須能夠從該文件夾下載文件,並且我們通常只需要MVC就可以忽略進入框架的請求,並且IIS可以直接提供這些文件。
或者您的意思是啓用了目錄瀏覽功能,並且您希望禁用該功能:在這種情況下,請轉到IIS管理器,然後選擇您的網站並查找目錄瀏覽選項並將其禁用,如here所示。
2
您的問題無法通過路由約束來解決。處理請求中有3個重要步驟:
- IIS獲得請求。
- IIS在文件系統中查看並搜索與文件的直接對應關係
- 如果IIS沒有找到任何文件 - 它向ASP.NET MVC提供處理請求。
因此,您需要將文件夾安全性配置爲禁止直接訪問文件,但允許訪問應用程序,如here。 但我不建議保護文件夾,應該共享。我不相信你的網站不應該有圖像顯示:)如果你有一些安全的內容,你需要創建另一個文件夾。
相關問題
- 1. ASP.NET路由ignoreRoute不起作用
- 2. 爲什麼我的clearInterval不起作用?
- 3. 爲什麼我的onclick不起作用?
- 4. 爲什麼我的fs.readFileSync不起作用
- 5. 爲什麼我的@MappedSuperClass不起作用?
- 6. 爲什麼我的@autowired不起作用
- 7. 爲什麼我的removeEventListener不起作用?
- 8. 爲什麼我的JSON不起作用
- 9. 爲什麼我的.autocomplete不起作用?
- 10. 爲什麼我的canvas.toDataURL不起作用?
- 11. 爲什麼我的plt.savefig不起作用?
- 12. 爲什麼我的backgroundWorker不起作用?
- 13. 爲什麼我的clearInterval不起作用?
- 14. 爲什麼我的javascript不起作用
- 15. 爲什麼我的GridView不起作用?
- 16. 爲什麼我的WebView不起作用?
- 17. 爲什麼我的module.exports不起作用?
- 18. 爲什麼我的setState不起作用?
- 19. 爲什麼我的session_destroy()不起作用?
- 20. 爲什麼我的KeyListener不起作用?
- 21. 爲什麼我的mysql_real_escape_string不起作用?
- 22. 爲什麼我的loadUserByUsername不起作用?
- 23. 爲什麼我的UIButton.tintColor不起作用?
- 24. 爲什麼我的TTS不起作用?
- 25. 爲什麼我的BroadcastReceiver不起作用?
- 26. 爲什麼我的CSS不起作用?
- 27. 爲什麼我的form_validation不起作用?
- 28. 爲什麼我的android:layout_weight不起作用?
- 29. 爲什麼我的ConcurentSet不起作用?
- 30. 爲什麼我的@singleton不起作用?
我把它放在每一個其他路線的頂部(不起作用)並且寫下你建議的路線(不再工作)。通過「不起作用」我的意思是當使用在瀏覽器中輸入'/ Content/Site.css'時,我的CSS文件將顯示在瀏覽器中,並且我想忽略此行爲 – Rzassar
@Rzassar如果您希望瀏覽器加載CSS並使用它來呈現你的頁面,你不能阻止用戶在瀏覽器中顯示CSS,這是根本不可能的... – Jon
@Rzassar:在地址欄中輸入'/ Content/Site.css'並看到樣式表是正常的。它發生在互聯網上的每個**網站上,只需轉到任何網站並使用螢火蟲,找到其樣式表的鏈接並將其輸入到adderssbar並查看。 – Zasz