IIFR中Action值

App_Browsers/RewriteForm.browser

 

<browsers>
 <browser refID="Default">
  <controlAdapters>
   <adapter controlType="System.Web.UI.HtmlControls.HtmlForm"
                adapterType="HtmlFormAdapter" />
  </controlAdapters>
 </browser>
</browsers>

========================================

 

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;

public class FormRewriteTextWriter : HtmlTextWriter
{
    private string rewriteUrl = HttpContext.Current.Request.ServerVariables["HTTP_X_REWRITE_URL"];
    private bool isFrom = false;

    public FormRewriteTextWriter(TextWriter writer)
        : base(writer)
    {
        if (writer is HtmlTextWriter)
            this.InnerWriter = (writer as HtmlTextWriter).InnerWriter;
        else
            this.InnerWriter = writer;
    }
    public override void WriteBeginTag(string tagName)
    {
        if (!string.IsNullOrEmpty(rewriteUrl))
        {
            if (string.Equals(tagName, "form", StringComparison.OrdinalIgnoreCase))
                this.isFrom = true;
        }
        base.WriteBeginTag(tagName);
    }

    public override void WriteAttribute(string name, string value, bool encode)
    {
        if (!string.IsNullOrEmpty(rewriteUrl))
        {
            if (this.isFrom && name.Equals("action", StringComparison.OrdinalIgnoreCase))
                value = rewriteUrl;
        }
        base.WriteAttribute(name, value, encode);
    }
}

=========================================

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.UI.Adapters;

public class HtmlFormAdapter : ControlAdapter
{
    protected override void Render(System.Web.UI.HtmlTextWriter writer)
    {
        base.Render(new FormRewriteTextWriter(writer));
    }
}

=====================================

RewriteRule  ^/test/(/d+).html$  /test/d.aspx?p=$1  [I,L,U]

 

I = Do case-insensitive matching

L = Last test if match(如果已经匹配,将不在继续匹配下去)

U = Store original url in server Variable HTTP_X_REWRITE_URL(保存原始的url到HTTP_X_REWRITE_URL服务器变量中。)

=================================================

 

更多资料

http://www.bingzhuo.com/log.php?id=33

http://cheeso.members.winisp.net/IIRF.aspx

http://hi.baidu.com/wzyao/blog/item/a58a6b7f4571df0b28388adb.html

http://www.cnblogs.com/JeffreyZhao/archive/2006/12/27/604373.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值