2013-02-21 15 views

回答

17

HttpServerUtility.Transfer終止當前頁面的執行並開始執行提供的URL。 這基本上映射並執行一個新的ASP.NET頁面(或提供一個靜態文件)對應於提供的URL。它在當前的請求管道中原地執行此操作,而不將新配置應用於新的url,或者爲新的url重新運行IIS模塊。正因爲如此,速度非常快,但它也阻止了很多TRQ可能發生的情況。

HttpServerUtility.TransferRequest執行提供的URL的異步執行。 這是一個完整的IIS子請求,它允許它重新運行新請求的整個請求管道,就好像它是一個單獨的請求,爲其獲取正確的配置並運行所有常規的IIS模塊包括身份驗證,授權等。例如,IIS將爲新的url應用授權規則,而不是之前的url。

6

TransferRequest,好像它是一個獨立的請求重新運行整個請求流水線。這意味着IIS和ASP.NET模塊被重新應用;新網址的身份驗證和授權規則將得到遵守。請注意,TransferRequest需要IIS 7+的集成管道模式,並且傳輸可以傳輸到ASP頁面或其他資源(如XML文件)。

Transfer將執行從一個ASP頁面轉移到服務器上的另一個ASP頁面。與TransferRequest不同,IIS和ASP.NET不會驗證當前用戶是否有權查看由Transfer方法傳遞的資源。如果您需要強制重新授權,並且不能選擇集成管道模式,請撥打Redirect而不是傳輸方法。重定向觸發客戶端重定向,以便新請求將受到IIS和ASP.NET的所有身份驗證和授權邏輯的支配。