如何才能防止encry目錄下的所有文件被非法下載呢?我們可以應用IIS中的應用程序映射結合ASP.NET中的IHttpHandler自定義權限,把IIS應用程序映射用於所有文件,並將控制權交給我們自己實現的IHttpHandler。
首先添加應用程序映射:打開IIS管理器->右擊我們要控制下載的站點->在屬性對話框中“配置...”,將文件改為你自己.netFramework ASPnet_isapi.dll的路徑。
然後修改web.config,在system.web下添加httpHandlers項,
<system.web> ... <httpHandlers> <add verb="*" path="encry/*.*" type="CustomHttpHandler.Class1,CustomHttpHandler"></add> </httpHandlers> ... </system.web>
下面來實現IHttpHandler
//------------------------file:Class1.cs--------- using System; using System.Web; namespace CustomHttpHandler { /// <summary> /// Class1 的摘要說明。 /// </summary> public class Class1 : System.Web.IHttpHandler { public Class1() { // // TODO: 在此處添加構造函數邏輯 // } #region IHttpHandler 成員 public void ProcessRequest(HttpContext context) { // TODO: 添加 Class1.ProcessRequest 實現 // string strRefUrl=context.Request.ServerVariables["HTTP_REFERER"]; /*插入您自己的代碼,讀文件內容並填充Response,該例僅簡單返回一條錯誤信息*/ context.Response.Write("您無法訪問該頁"); } public bool IsReusable { get { // TODO: 添加 Class1.IsReusable getter 實現 return false; } } #endregion } }