2010-01-16 94 views
1

我想保護特定目錄中的文件,以便人們無法鏈接到它們 - 但我仍然需要我的程序能夠渲染它們,所以密碼保護實際文件夾沒有工作。有沒有什麼方法可以在ASP.NET MVC中實現這一點?很明顯,它更多的是關於ASP.NET,而不是MVC - 但我不能使用會話狀態和回發等等。用asp.net保護文件(mvc)

回答

2

您可以將該目錄置於Web應用程序的根目錄之外(以便它不能使用一些複製的URL訪問)或者使用web.config文件拒絕任何讀訪問的目錄。

然後通過要求當前用戶被授權的操作訪問文件,e.g:

public class FileController : Controller 
{ 
    [Authorize] 
    public ActionResult Get(string file) 
    { 
    return new File(Path.Combine(_rootPath, file); 
    } 
} 

然後你就可以通過一個動作的URL訪問這些文件,例如http://server/app/File/Get/test.txt

+0

這並沒有完成我想在這裏做的事情,但它確實幫助解決了另一個我必須弄清楚的問題。謝謝! – Ciel 2010-01-17 16:17:35