程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 再次試驗用ASP.NET來Redirect

再次試驗用ASP.NET來Redirect

編輯:.NET實例教程
再次試驗用ASP.Net來Redirect

以前我曾經寫過文章介紹如何使用Global.asax來做重定向。可是實踐中出現很多問題。

新的項目我使用HttpModule來做。使用HttpModule而不是HttpHandler可以避免無限循環的問題。HttpHandler其實是截獲Handler,所有後來的事都要自己手工解決。我只是重新定向,沒有這麼復雜。HttpModule看上去比較實惠,所以就是這個了。



    public class HttpModule : IHttpModule
    ...{
        public void Dispose()
        ...{ }

        public void Init(HttpApplication context)
        ...{
            context.AcquireRequestState += new EventHandler(context_BeginRequest);
        }

        private void context_BeginRequest(object sender, EventArgs e)
        ...{
            string From = Config.GetAPPSettings("From");
            string To = Config.GetAPPSettings("To");
            string WebAppPath = HttpContext.Current.Request.ApplicationPath;
            From = From.Replace("~/", "");
            To = To.Replace("~/", WebAppPath + "/");

            if (HttpContext.Current.Request.RawUrl.Contains(From))
            ...{
                HttpContext.Current.Server.Transfer(To, true);
            }
        }
    }

只要在Web.config裡面加上From和To的APPSetting就可以了。Web.config中加入如下httpModule:

<add name="HttpModule" type="HttpModule, MyLib" />

前面是類,後面是dll的文件名。如果IIS中沒有這個虛擬文件,要這樣設置:打開ISAPI,設置Mapping,勾選Check that file exists, 這樣,打開浏覽器就可以訪問到假地址。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved