2014-09-03 54 views
1

我有一個網站,其中包含一些不能直接被客戶端訪問的數據。我有一個文件夾內的如何防止訪問ASP.NET中的文件夾

root 
|-Confidential 
    |-Test.txt 
    |- web.confid 
    |- _PageStart.cshtml 
web.config 

..what我想要做的是,否認訪問機密整體用戶的文件夾,使所有的內容,可直接訪問會重定向到某處顯示一個簡單的404.

我甚至嘗試過使用web.config文件,因爲在堆棧溢出中有一個解決方案,以創建一個新的web.config文件,然後將其寫入它。

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
     <authorization> 
     <allow users="admin" /> 
     <deny users="*" /> 
     </authorization> 
    </system.web> 
</configuration> 

但它不適用於我。然後我試着用另一種方法替換文件的名稱,並將其寫爲_Test.txt。但我想,ASP.NET只控制.cshtml文件和其他ASP.NET文件以這種方式隱藏。

應用的另一種方法是,通過創建一個名爲_PageStart.cshtml新的頁面,然後編寫這些代碼

@{ 
    Response.StatusCode = 404; 
} 

再次..但設置錯誤代碼404!該頁面可直接訪問。在所有這些方法之後,我來到這裏,找到解決這個問題的辦法。我如何拒絕在ASP.NET中作爲整體訪問所有文件或文件夾。

enter image description here

+0

這個博客可能會派上用場。 [在web.config中設置特定頁面或文件夾的授權規則](http://weblogs.asp.net/gurusarkar/setting-authorization-rules-for-a-particular-page-or-folder-in-web- config) – Izzy 2014-09-03 10:11:06

回答

1

我有一個網站,其中包括一些數據不能被客戶端直接訪問。

實現此目的的最簡單方法是將數據放入App_Data文件夾中。這就是它的目的。

+0

這是做這件事的最好方法。不需要代碼,ASP.NET將處理它。謝謝! – 2014-09-03 12:12:50

1

添加到您的<sysyem.webserver>部分

<security> 
    <requestFiltering> 
    <hiddenSegments> 
     <add segment="folderName"/> 
    </hiddenSegments> 
    </requestFiltering> 
</security> 
+0

+1非常感謝兄弟! :)這有幫助, – 2014-09-03 12:09:16

+0

我很高興我可以幫助:D – Coder 2014-09-03 18:33:03

+0

我有類似的問題,這段毫無疑問阻止訪問該文件,但如何讓它通過Web應用程序訪問。 – Harry 2014-12-03 09:58:09