IIs6如何让html文件经过asp.net管道处理

29 篇文章 0 订阅

近期做了一个后台管理网站,后台页面都是Html页面,里面再通过ajax访问后台服务。要做到比较好的用户体验,即:如果用户没有登录或没有权限马上调到登录页面,而不是等到页面加载后再ajax时判断是否登录或权限再做跳转(这样给用户体验不好)。该如果实现呢?

首先想到的是自定义httpModule,拦截html请求,做权限认证。

本地调试没有问题,发布到IIS6后发现包含html文件再内的所有的静态资源都没有经httpModule处理,后来发现静态资源 IIS6直接返回,不通过asp.net管道处理。IIS7的集成模式默认所有的请求都会进入asp.net管道。这个问题如何解决呢?答案是通过配置IIS和web.config配置文件实现静态资源由asp.net管道处理。

一、首先iis6中右键站点属性->主目录->配置->应用程序配置

我用的是.net4.0,可执行文件填写的是c:\windows\microsoft.net\framework\v4.0.30319\aspnet_isapi.dll,如果是2.0填写2.0的aspnet_isapi.dll即可。

动作可根据自己的需要定制。GET、POST、PUT、DELETE等

确认文件是否存在不勾选

二、web.config配置

1、system.web节点下的httpHandlers添加html处理器映射

<system.web>
   <httpHandlers>
    <add verb="GET" path="*.html" type="System.Web.UI.PageHandlerFactory"/> 
   </httpHandlers> 
</system.web>

 

2、system.web节点下的httpHandlers添加html编辑映射

<system.web>
 <compilation> 
   <buildProviders> 
     <add extension=".html" type="System.Web.Compilation.PageBuildProvider"/> 
   </buildProviders> 
 </compilation>
</system.web>

3、自定义httpModule过滤html,做相关功能验证

<system.web>
  <httpModules> 
    <add name="accountModule" type="tracePlatForm.WebApp.modules.accountModule"/> 
  </httpModules>
</system.web>

httpModule关键代码:

public class accountModule : IHttpModule,IReadOnlySessionState
    {
        public void Dispose()
        {
            
        }

        public void Init(HttpApplication context)
        {
            context.BeginRequest += new EventHandler(checkLogin);
        }
        
        private void checkLogin(object sender, EventArgs e)
        {
            //自己的处理
        }
    }

至此所有必须的配置都已完成,你的站点可以过滤html文件请求了。

另外提醒下,修改web.config文件最好不要用txt模式修改或者网站上直接复制粘贴过来东西,有时会出现"该配置节不能包含 CDATA 或文本元素"的报错。建议在vs中直接手工完整敲代码。

参考资料:

http://www.2cto.com/article/201205/129860.html

http://www.cnblogs.com/001help/p/3903897.html?utm_source=tuicool&utm_medium=referral

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值