2017-04-13 47 views
4

在傳統的ASP.NET應用程序中,*.config文件不能通過導航到URL下載。但新的慣例是使用appsettings.json。現在,如果我有一個名爲contoso.com的ASP.NET Core網站,它由IIS從一個名爲C:\inetpub\websites\contoso.com的目錄提供,並且有一個文件位於C:\inetpub\websites\contoso.com\appsettings.json ...... IIS是否足夠聰明,知道不通過HTTP提供此文件,如果有人導航到https://contoso.com/appsettings.json是否由IIS保護appsettings.json?

回答

5

文件通常來自「wwwroot」文件夾。只要你沒有配置C:\inetpub\websites\contoso.com\作爲你的應用程序的web根目錄,appsettings.json文件就是安全的。默認情況下,可在C:\inetpub\websites\contoso.com\wwwroot\中找到靜態文件。我推薦這個優秀的文檔:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files

順便說一句,除非另有配置,IIS甚至不檢查文件系統。實際上,ASP.NET Core將確保僅從「wwwroot」文件夾提供文件。在IIS中,典型的ASP.NET Core網站實際上是作爲單獨的Web服務器運行的,該服務器通過ASP.NET Core Module反向代理IIS。這意味着所有請求都由ASP.NET Core處理。要提供靜態文件,您必須使用Microsoft.AspNetCore.StaticFiles包中提供的靜態文件中間件。