保护站点子目录的文件
实现访问某个站点子目录下的文件时,显示登陆页面。
1、编制httphandler
建立一个类项目MyHandler,新建一个类MyHandler。
using System;
using System.Web;
namespace MyHandler
{
/// <summary>
/// Summary description for NewHandler.
/// </summary>
public class NewHandler : IHttpHandler
{
public NewHandler()
{
//
// TODO: Add constructor logic here
//
}
#region Implementation of IHttpHandler
public void ProcessRequest(System.Web.HttpContext context)
{
string FileName = context.Server.MapPath(context.Request.FilePath);
context.Response.WriteFile(FileName);
}
public bool IsReusable
{
get
{
return false;
}
}
#endregion
}
}
编译得到MyHandler.dll文件。
2、建立测试项目,
加入login.aspx页面和建立scores文件夹,在文件夹中拷贝一个pdf文件。
在login登陆按钮中输入以下代码:
using System.Web.Security
FormsAuthentication.RedirectFromLoginPage(txtUserId.Text, false);
修改config文件
在<system.web>中加入
<authentication mode="Forms" >
<forms name=".reelbook" loginUrl="Login.aspx"/>
</authentication>
<httpHandlers>
<add verb="GET" path="scores/*.pdf" type="MyHandler.NewHandler,MyHandler"/>
</httpHandlers>
和
<location path="scores">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
3、在iis中,加入以下扩展:
4、现在访问http://*/testdemo/scores/tets.pdf,就会显示login.aspx登陆页面,从而保护了文件的安全。