Asp.net
如何在 IIS 7.5 上使用 ASP.NET 表單身份驗證保護靜態文件?
我有一個在共享主機上執行 IIS 7.5 伺服器和 ASP.NET 4.0 的網站,但完全信任。
該站點是一個基本的“文件瀏覽器”,允許訪問者登錄並顯示可供他們使用的文件列表,並且顯然可以下載文件。靜態文件(主要是 pdf 文件)位於站點上名為 data 的子文件夾中,例如http ://example.com/data/ ..。
該站點使用 ASP.NET 表單身份驗證。
我的問題是:如何讓 ASP.NET 引擎處理對數據文件夾中靜態文件的請求,以便對文件的請求由 ASP.NET 進行身份驗證,並且使用者無法深度連結到文件和抓取他們不允許擁有的文件?
如果您的應用程序池在集成模式下執行,那麼您可以執行以下操作。
將以下內容添加到您的頂級 web.config。
<system.webServer> <modules> <add name="FormsAuthenticationModule" type="System.Web.Security.FormsAuthenticationModule" /> <remove name="UrlAuthorization" /> <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" /> <remove name="DefaultAuthentication" /> <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" /> </modules> </system.webServer>現在,您可以在 web.config 中使用標準 ASP.NET 權限來強制對目錄中的所有文件進行表單身份驗證。
<system.web> <authorization> <deny users="?" /> </authorization> <authentication mode="Forms" /> </system.web>