溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用ASP.NET怎么獲取URL重寫前的原始地址

發(fā)布時間:2021-02-18 15:19:33 來源:億速云 閱讀:140 作者:Leah 欄目:開發(fā)技術

本篇文章為大家展示了使用ASP.NET怎么獲取URL重寫前的原始地址,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

  通常的使用場景是當我們有某個頁面需要用戶登錄才能訪問時,我們會在代碼中判斷當前訪問用戶是否登錄,如果未登錄,則重定向至登錄頁面,并將當前網(wǎng)址通過Url參數(shù)傳遞給登錄頁面。如果使用了URL重寫,并通過Request.Url.AbsoluteUri獲取當前網(wǎng)址,用戶登錄后打開的就是重寫后的地址,這雖然不影響正常使用,但從用戶體驗及URL統(tǒng)一的角度,我們更希望是重寫前的地址。

  之前,我們在開發(fā)中也被這個問題困擾,只能盡量通過js重定向至登錄頁面(通過location.href獲取當前網(wǎng)址)或者在代碼中手動寫返回地址。

  現(xiàn)在,我們找到了解決方法,可以從Request.Headers中找到重寫前的網(wǎng)址。

  1)如果重寫組件用的是ISAPI_Rewrite,則訪問被重寫的網(wǎng)址時,Headers中會增加一項數(shù)據(jù):Key為X-Rewrite-URL,值為重寫前的網(wǎng)址。

  2)如果重寫組件用的是IIS自帶的URL Rewrite模塊,則Headers中增加的信息的Key為X-Original-URL。

  這樣我們就可以輕松獲取重寫前的網(wǎng)址,示例代碼如下:

復制代碼 代碼如下:


if (Request.Headers["X-Rewrite-URL"] != null)
{
    Response.Write("http://" + Request.Url.Host + Request.Headers["X-Rewrite-URL"]);
}
else if (Request.Headers["X-Original-URL"] != null)
{
    Response.Write("http://" + Request.Url.Host + Request.Headers["X-Original-URL"]);
}

上述內(nèi)容就是使用ASP.NET怎么獲取URL重寫前的原始地址,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI