zoukankan      html  css  js  c++  java
  • html 处理

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

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

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

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

    我用的是.net4.0,可执行文件填写的是c:windowsmicrosoft.netframeworkv4.0.30319aspnet_isapi.dll,如果是2.0填写2.0的aspnet_isapi.dll即可。

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

    确认文件是否存在不勾选

    二、web.config配置

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

    [html] view plain copy
     
    1. <system.web>  
    2.    <httpHandlers>  
    3.     <add verb="GET" path="*.html" type="System.Web.UI.PageHandlerFactory"/>   
    4.    </httpHandlers>   
    5. </system.web>  
    
    

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

    [html] view plain copy
     
    1. <system.web>  
    2.  <compilation>   
    3.    <buildProviders>   
    4.      <add extension=".html" type="System.Web.Compilation.PageBuildProvider"/>   
    5.    </buildProviders>   
    6.  </compilation>  
    7. </system.web>  


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

    [html] view plain copy
     
    1. <system.web>  
    2.   <httpModules>   
    3.     <add name="accountModule" type="tracePlatForm.WebApp.modules.accountModule"/>   
    4.   </httpModules>  
    5. </system.web>  

    httpModule关键代码:

    [csharp] view plain copy
     
    1. public class accountModule : IHttpModule,IReadOnlySessionState  
    2.     {  
    3.         public void Dispose()  
    4.         {  
    5.               
    6.         }  
    7.   
    8.         public void Init(HttpApplication context)  
    9.         {  
    10.             context.BeginRequest += new EventHandler(checkLogin);  
    11.         }  
    12.           
    13.         private void checkLogin(object sender, EventArgs e)  
    14.         {  
    15.             //自己的处理  
    16.         }  
    17.     }  

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

  • 相关阅读:
    【原】独立小应用程序性能优化简化版,减少数据库访问次数,提高应用程序处理效率,缓存之 HttpRuntime.Cache
    【转】SQL索引一步到位
    C# Excel读取导入数据库碰到的问题
    VS2010SP1修复补丁&Microsoft Visual Studio 2010 Service Pack 1
    ImportError: No module named ‘MySQLdb'
    【转】(C#)OPC客户端源码
    【转】DCOM远程调用权限设置
    【转】OPC远程访问相关配置信息
    WPF之DataAnnotations 注解说明
    WPF中,输入完密码回车提交 ,回车触发按钮点击事件
  • 原文地址:https://www.cnblogs.com/ransom/p/8709783.html
Copyright © 2011-2022 走看看