如何才能防止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()
{
//
// TOD 在此處添加構造函數邏輯
//
}
#region IHttpHandler 成員
public void ProcessRequest(HttpContext context)
{
// TOD 添加 Class1.ProcessRequest 實現
// string strRefUrl=context.Request.ServerVariables["HTTP_REFERER"];
/*插入您自己的代碼,讀文件內容並填充Response,該例僅簡單返回一條錯誤信息*/
context.Response.Write("您無法訪問該頁");
}
public bool IsReusable
{
get
{
// TOD 添加 Class1.IsReusable getter 實現
return false;
}
}
#endregion
}
}