zoukankan      html  css  js  c++  java
  • 在Asp.Net里使用自定义映射进行重定向

      在IIS站点属性中添加自定义映射,如添加一个扩展名为.fbsx的文件类型,通过实现IHttpHandler来进行重定向。

      实现IHttpHandler的类:
     1using System;
     2using System.Text.RegularExpressions;
     3using System.Web;
     4using System.Web.SessionState;
     5
     6namespace FaibClass.Common.Web
     7{
     8    public class URLRewriterHandler : IHttpHandler, IRequiresSessionState
     9    {
    10        public void ProcessRequest(HttpContext context)
    11        {
    12            URLRewriterRuleCollection rules = URLRewriterConfiguration.GetConfig().Rules;
    13            string requestedPath = context.Request.FilePath;
    14            for(int i = 0; i < rules.Count; i++)
    15            {
    16                Regex reg = new Regex(rules[i].MatchUrl, RegexOptions.IgnoreCase);
    17                bool isMatch = reg.IsMatch(requestedPath);
    18                if(isMatch)
    19                {
    20                    context.Server.Execute(reg.Replace(requestedPath, rules[i].RedirectUrl));
    21                }

    22            }

    23        }

    24
    25        public bool IsReusable
    26        {
    27            get
    28            {
    29                return true;
    30            }

    31        }

    32    }

    33}

      使用IRequiresSessionState的目的是:能够在目标页面中使用Session。注意如果目标页面中使用Ajax.Net组件,在注册类型的时候应使用第二个参数:
    AjaxPro.Utility.RegisterTypeForAjax(typeof(YourClass), this);

      打开IIS管理器,在站点属性的映射中添加一个.fbsx的文件扩展名,其他设置与.aspx的一致,注意“确认文件是否存在”不能勾选。

      在web.config中配置httpHandlers节:
    1 <httpHandlers>
    2   <add verb="POST,GET" path="*.fbsx" type="FaibClass.Common.Web.URLRewriterHandler, FaibClass.Common" />
    3 </httpHandlers>
      并配置重定向配置节
     <configSections>
       
    <section name="URLRewriterConfig" type="FaibClass.Common.Web.URLRewriterConfigSerializerSectionHandler, FaibClass.Common" />
      
    </configSections>
      
    <URLRewriterConfig>
        
    <Rules>
           
    <URLRewriterRule>
             
    <MatchUrl>([\d]+)\.fbsx</MatchUrl>
             
    <RedirectUrl><![CDATA[target.aspx?to=$1]]></RedirectUrl>
           
    </URLRewriterRule>
         
    </Rules>
      
    </URLRewriterConfig>

      这样,只要我们键入一个1234.fbsx文件,浏览器就会重定向到target.aspx页面进行相应的执行。
  • 相关阅读:
    AndroidStudio打开新项目后解决下载某版本gradle慢的问题
    GeoServer怎样修改线性地图的颜色样式
    GeoServer简介、下载、配置启动、发布shapefile全流程(图文实践)
    AndroidStudio中打开新项目提示:This version of the Android Support plugin for IntelliJ IDEA (or Android Studio) cannot o
    若依微服务版在Windows上通过jar包运行业务模块时提示:Failed to determine s suitable driver class
    若依微服务版后台服务通过jar包部署到Windows服务器
    腾讯云centos7安装MySQL
    使用Navicat for MySQL把本地数据库上传到服务器
    浏览器页面乱码
    事务的配置
  • 原文地址:https://www.cnblogs.com/faib/p/717776.html
Copyright © 2011-2022 走看看