2010-08-17 39 views
0

目前,我只是使用客戶端Javascript(location.href),但我想知道是否有方法在Asp.Net中找出用戶的URL最初進入(假設我沒有通過301自己改變它),或者至少以簡單和可靠的方式跟蹤它。由於我使用我自己的通過global.asax實現URL重寫(例如Context.RewritePath),這不是一件容易的事情,特別是因爲我不想觸及它太多。確定用戶最初在重定向後訪問網頁的網址

Global.asax: 
    public override void Init() 
    { 
     base.Init(); 
     this.BeginRequest += new EventHandler(Global_BeginRequest); 
    } 

    void Global_BeginRequest(object sender, EventArgs e) 
    { 
     if (VARIOUSCONDITIONS) Context.RewritePath("SOMEURL"); 
    } 

SomePage.aspx.cs 

    protected void Page_Init(object sender, EventArgs e) 
    { 
     //Request.RawUrl is equal to "SOMEURL", as 
     //are other properties that store the URL. 
    } 
+0

能否請你舉個例子...... – Aristos 2010-08-17 16:45:23

+0

@Aristos:我添加了一個基本的例子。 – Brian 2010-08-17 18:56:22

回答

1

也許我誤解你的問題,但如果你想捕捉用戶首先點擊網站上的頁面,你不能抓住這個在Global.asax中的事件在session_start ?然後存儲在sessionstate或數據庫中以備將來使用?

+0

聽起來好像會起作用。當我有機會時會測試。 – Brian 2010-08-17 23:43:02

+0

+1對於一個好主意,雖然這不會沒有一點調整,因爲session_start事件也會觸發用戶請求的頁面以外的頁面(例如axd文件)。 – Brian 2010-08-18 13:49:56