保护站点子目录的文件

实现访问某个站点子目录下的文件时,显示登陆页面。

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登陆页面,从而保护了文件的安全。

posted @ 2006-04-26 17:09  吴建明  阅读(531)  评论(0编辑  收藏  举报